• ベストアンサー

Access2007での年齢計算

ある時点での満年齢を表示するため下記の[BEGDATE]に誕生日yyyy/mm/ddを書き[ENDDATE]にある時点のyyyy/mm/ddを書きテキストボックスのコントロールソースに下記の式を書きました。 =DateDiff("yyyy",[BEGDATE],[ENDDATE]) しかしこれだと年齢は出ますが誕生日を過ぎたある時点でも年齢か一才増えません。 どのように書けばよいのか教えてください。

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

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

式はこのようになります。 =DateDiff("yyyy",[BEGDATE],[ENDDATE]) - IIf(Format([BEGDATE], "mm/dd") > Format([ENDDATE], "mm/dd"), 1, 0) ためしにDateDiff("yyyy", CDate("2008/12/31"), CDate("2009/1/1"))としてみてください。 結果は1になると思います。 このようにDateDiff関数は年数の引き算を行っているだけです、お気をつけ下さい。

skyc42
質問者

お礼

お陰様でばっちり出来ました。 本当に有り難うございました。

その他の回答 (1)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

DateDiffで求まるのは1月1日の回数です。 年齢計算のマイクロソフトの頁です http://office.microsoft.com/ja-jp/access/HA010550711041.aspx

参考URL:
http://office.microsoft.com/ja-jp/access/HA010550711041.aspx
skyc42
質問者

お礼

参考資料有り難うございました。 保存いたします。

関連するQ&A