アクセスで年齢を自動計算して表示するには?

 

アクセス担当のまみです。

 

年齢を自動的に計算出来たらどうですか!手打ち入力をしていたら必ずついてくる入力ミス!

その入力ミスが完全になくせれるとしたらいかがですか、きっとすごく嬉しくなりますよね!

そんな入力ミス完全排除をほどこしてみませんか?

 

今回は、基準日現在での年齢を表示する方法をお伝えしますね。

基準日って何?

 

(はてな君)
基準日ってな~に?

 

(あいちゃん)
10月1日現在とか4月1日現在とかならわかるかな?

 

(はてな君)
あっなるほどそういうことか。つまり10月1日とか4月1日が基準日ってことなんだ。

 

(あいちゃん)
そういうこと!

 

 

年齢を求めるにはいつの時点でってわからないと計算できないので、基準日を設けるんですね。

 

年齢の計算

 

年齢の計算ってDateDiff関数って関数を使用します。

(はてな君)
DateDiff関数?

 

(あいちゃん)
DateDiff関数って2つの日時の間隔を計算してくれます。

 

DateDiff(単位, 日時1, 日時2)

この構文に当てはめれば年齢が計算できます。

ただ、年齢を求める場合には単位は「”yyyy”」になるわけですが、この場合、日時1と日時2の間の年をまたいだ回数を計算してくれるので注意が必要です。

 

(はてな君)
え~っとそれって12月30日から1月2日までだと1年ってこと?

 

(あいちゃん)
そういうこと!2、3日しかたってなくても1年って計算してくれます。逆に年をまたいでなければ、ほとんど1年だけど0年ってこともあるんだよ。

 

 DateDiff(“yyyy”,[生年月日],Date())で現在までの年齢が求められるのは、誕生日が過ぎている場合で、誕生日がまだ来ていない場合にはDateDiff(“yyyy”,[生年月日],Date())から1を引いてあげれば良いってことになります。

 

IIf(真の場合偽の場合)

以上のことと、IIF関数を組み合わせることで、年齢を求めることができます。

 

(はてな君)
IIF関数って?
(あいちゃん)
IIF関数は、条件式に当てはまる場合には真の値を、当てはまらない場合には偽の値を返してくれるよ。

 

現在の年齢を求める式

IIf(Format(Date(),”mmdd”)<Format([生年月日],”mmdd”),DateDiff(“yyyy”,[生年月日],Date())-1,DateDiff(“yyyy”,[生年月日],Date())) 

 

(はてな君)
今日じゃなくて年度末の年齢とか計算するにはどうすればいいの?

 

年度末の年齢を求める式

DateDiff(“yyyy”,[生年月日],”2019/3/31″)+(Format([生年月日],”mm/dd”)>”3/31″) 

 

(はてな君)
あ~なるほど。こっちの方がなんか簡単。基準日が変われば日付を変えればいいんだね!

テーブルの準備

 

では実際に年齢計算をやってみましょう。

使用するテーブルは下記のとおりです。

 

「T_年齢計算」テーブル

ID オートナンバー型
氏名 短いテキスト
生年月日 日付/時刻型

 

データはご自身で準備してみてくださいね。

思いつかなければ下記と同じものをどうぞ!

 

 

クエリで年齢計算

 

(あいちゃん)
さっきの年齢を求める式2つとも試しちゃいましょう!

 

 

「作成」タブの「クエリデザイン」から「T_年齢計算」テーブルを選択したら、すべて表示されるように「*」を選びます。

 

フィールドに下記の2つをそれぞれ入力します。

 

本日の年齢:IIf(Format(Date(),”mmdd”)<Format([生年月日],”mmdd”),DateDiff(“yyyy”,[生年月日],Date())-1,DateDiff(“yyyy”,[生年月日],Date())) 

 

年度末年齢:DateDiff(“yyyy”,[生年月日],”2019/3/31″)+(Format([生年月日],”mm/dd”)>”3/31″) 

 

(はてな君)
フィールドにそのまま年齢を求める式を入れるんだ~。フィールド名ってどうなるの?

 

(あいちゃん)
年齢を求める式の前に「本日の年齢:」とか「年度末年齢:」って入れてあげることで表示されるんだよ!

 

 

(はてな君)
へぇ~年齢も計算されてて、フィールド名も表示されてる~!

 

テーブルに直接入力してしまうと、手計算だし、基準日が変わると全部修正になってしまうけど、クエリだと基準日の変更のみで自動計算してくれます。

 

(はてな君)
計算式が長くて難しかったけど、年齢計算のやり方がわかったよ!

 

まとめ

 

年齢計算を自動でできると便利ですね。

手計算で入力していると、自分の生年月日に近いと気が付くけど、間違っていても気が付きにくいんですね。

年齢計算の求め方を知っていると役に立ちますよ!