• ベストアンサー

Accessの関数について

Accessのフォーム作成から氏名、生年月日、年齢といったかんじでデータを作成し、生年月日を入力したら年齢も自動的に表示されるようにしたいのですが、関数の定義がわからないので教えてもらえないでしょうか。 フォームのデザインビューからプロパティ→年齢のテキストボックスを指定し、テキストボックス年齢のプロパティが開かれます。コントロールソースの項目からビルドボタンをクリックすると、式ビルダが開かれます。生年月日の表示方式は 生年月日 1999/09/09 といった表示方法をとっています。Excelだと、datedif関数で、 datedif("生年月日","2002/10/1","y")で年齢を算出できたので、もしかしたらAccessでも定義できるんではないかと思いまして質問いたしました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ACCESS2000までですが、EXCELのDatedifのような満年例を算出する関数は残念ながらありません。年齢を計算する方法はいくつかあると思いますので、その一例を。 =IIf(Format("2002/10/1","mm/dd")>Format([生年月日],"mm/dd"), DateDiff("yyyy",[生年月日],"2002/10/1"), DateDiff("yyyy",[生年月日],"2002/10/1")-1) Datediffは日付を比較して、その差分(年)を算出しますので、 誕生日の年月を比較して、その年の誕生日が過ぎていない場合は-1します。

u-mesh12
質問者

お礼

この質問をした後にヘルプを参照していろいろ試してみたんです。 DateDiff("yyyy",[生年月日],Now()) こんな風に定義したら、年齢の計算が出来ました。 アドバイスありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

Accessのバージョンによっても異なるんでしょうけど・・・ 97でしたら、DateDiff関数は使用できますよ DateDiff("yyyy",[生年月日],Date()) 勿論、これだけでは正確には計算してくれませんけどね、この例では、年数だけの計算にしてありますが、一般的には、こんな程度で間に合うと思いますけどね

u-mesh12
質問者

お礼

この質問をした後にヘルプを参照していろいろ試してみたんです。 DateDiff("yyyy",[生年月日],Now()) こんな風に定義したら、年齢の計算が出来ました。 アドバイスありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A