• ベストアンサー

ACCESSで生年月日より年齢を出す方法は?

datediff関数を使うとなんとか近い物がでてくるのですが、アクセスで年齢の表示を「28歳と11ヶ月です。」というような表現でフォーム上に表示させたりするにはどういった手法をとれば宜しいでしょうか? それから組み込み関数でDATEDIFFを組み込むと DateDiff (<interval>, <date1>, <date2>, <firstweekday>, <firstweek>) っというように表示されますが、各々にはどういった処置をすればいいのかどなたか教えて下さい。 アドバイスの程宜しくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

#1さんの方法では、2003/11/30 に生まれた人が、2003/12/1 になると 1日より経っていないのに、もう1ヶ月 となってしまいます。 そのように起算するなら、この方法で良いでしょう。 しかし、通常の数え方のように誕生日(ここでは日にち)を迎えていない場合に -1 して計算する場合は、次のようにすると良いでしょう。 ユーザー定義関数にしました。 使い方は、「モジュール」の「新規作成」に下記コードを貼り付けます。 クエリで使用する場合は、  年齢:NenreiYM([生年月日]) フォーム等で非連結コントロールに計算式として使用する場合、  =NenreiYM([生年月日]) のように設定します。 Function NenreiYM(BirthYMD As Date) As String   Dim M As Integer   M = DateDiff("M", BirthYMD, Date) + (Day(Date) < Day(BirthYMD))   NenreiYM = M \ 12 & "歳" & M Mod 12 & "ヶ月" End Function

hikari_tai
質問者

お礼

ずばり的中という解答をありがとうございました。

その他の回答 (2)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

年齢計算については、#1さんの回答でよろしいかと思います。 DateDiff関数の使い方は、Accessのヘルプでキーワードに「DateDiff」を 指定すると、詳しく説明されていますのでご覧ください。 また、使用例も載っていますので参考になると思います。 (ヘルプも役に立ちますので活用されるといいと思います) intervalには、差をどういう単位で計算するかを文字列で指定します。 年単位なら"yyyy"、月単位なら"m"、日単位なら"d"などです。 date1, date2には処理する日付を指定します。年齢計算は現在との差ですので、 一方をnow()に指定してください。 <firstweekday>, <firstweek>は省略可能です。詳しくはヘルプをご覧ください。

hikari_tai
質問者

お礼

datediffに関して多少理解できてきました。 有難う御座いました。

回答No.1

Dim m As Integer Dim b As Date b = #19??/??/??# '生年月日 m = DateDiff("m", b, Now) MsgBox(m \ 12 & "歳" & m Mod 12 & "ヶ月") のような感じで計算できます。 (実際には、テキストボックスかラベルにセットすればよいと思います。)

hikari_tai
質問者

お礼

アドバイス有難う御座いました。

関連するQ&A

  • 生年月日から年齢を計算したい。

    アクセスのクリエを使って、年齢を年・月単位で計算をしたいのですで教えてください。 過去のある月に遡って、生年月日から年齢を出したいのです。 フィールドには、[生年月日]があるのでDateDiff関数を 使えばよいと思うのですが、うまくいきません。ご存知の方、アドバイスをお願いします。

  • アクセス2000誕生日から満年齢出し方

    テーブルですが 最後の列が生年月日フォームなっています。 形式はyyyy/mm/ddです 友人に聞いてその回答は DateDiff("yyyy",[生年月日],Date())この式を クエリの生年月日フィールドの右側の空欄のフィールドへ入れるとでてくるよ。の回答で実行したら 式1:DateDiff("yyyy",[生年月日],Date())とでて クエリには 年齢がでてきました。 そこで 質問ですが テーブルに誕生日のフォームに生年月日打ち込むと 横の仮に「年齢」フォームに自動ででてくるようにするには どうしたらよいのでしょうか。 教えてください。

  • アクセスで和暦から6月3日現在の年齢

    アクセスで和暦の生年月日から平成17年6月3日辞典の年齢をクエリで作成したいのですが、どうもうまくいきません。ちなみに現在まではわかるので、下記を改良すればいいとは思うのですが、よろしくお願いします。 年齢:IIf(Format([生年月日],"mmdd")>Format(Date(),"mmdd"),DateDiff("yyyy",[生年月日],Date())-1,DateDiff("yyyy",[生年月日],Date()))

  • Accessでの年度末の年齢表示について

    Accessで生年月日から今年度の年度末の年齢表示を次のようにしたところうまく表示されません。 年度末年齢: DateDiff("yyyy",[生年月日],2009/3/31) ここ数日考えましたがわかりません。 よろしくお願いします。

  • Access 2000での年齢計算

    Access 2000にて作成しているデータベースのレポートにて、顧客の年齢を計算しています。基本的には正しい年齢が表示されるのですが、一部の方の分だけ年齢の計算結果が正しくありません。現時点で見つかっている事例は2件のみですが、正しい年齢より1年多かったり、逆に1年少なかったりと、パターンが一定しているわけでもないため、どこに問題があるのかが分かりません。確認してみるべき点について色々お教え頂ければ幸いです。 記 ◎年齢計算に使っている関数は以下の通りです。 =Trim(IIf(Format([生年月日],"mm/dd")>=Format(Now(),"mm/dd"),DateDiff("yyyy",[生年月日],Now()),DateDiff("yyyy",[生年月日],Now())-1) & "歳") 「生年月日」フィールドに西暦で生年月日が格納されており、レポートを印刷する時点での日付と誕生日を比較することで、単純に年数の引き算をしたり、更に1を引いたりしています。 以上

  • ACCESS #errorの表示させないには・・・

    フォームで[現在年令](テキストボックス)に下記の設定がしてあります =IIf(Format([社員_生年月日和暦],"mmdd")>Format(Date(),"mmdd"),DateDiff("yyyy",[社員_生年月日和暦],Date())-1,DateDiff("yyyy",[社員_生年月日和暦],Date())) 新規の登録をする場合には[社員_生年月日和暦]が空欄のため[現在年令]に#Errorと表示されてしまいます [社員_生年月日和暦]が空欄の場合は[現在年令]も空欄にしたいのでどうすればいいか教えてください どうぞ宜しくお願いします

  • access 小数点について

    現在 IIf(Day(Date())>=Day([入]),DateDiff('m',[入],Date())\12 & '年' & DateDiff('m',[入],Date()) Mod 12 & 'ヶ月',(DateDiff('m',[入],Date())-1)\12 & '年' & (DateDiff('m',[入],Date())-1) Mod 12 & 'ヶ月') 上記式にて何年何ヶ月と表示させていますが これを4年5ヶ月=4.5などに変更するにはどのようにすればよいのでしょうか? ご指導ください よろしくお願いいたします。

  • accessでの勤続年数の計算

    ACCESS初心者です。 現在従業員名簿を作成しています。 勤続年数欄に過去の質問を参考に以下の関数を入力しました。 IIf(Day(Date())>=Day([入社年月日]),DateDiff('m',[入社年月日],Date())\12 & '年' & DateDiff('m',[入社年月日],Date()) Mod 12 & 'ヶ月',(DateDiff('m',[入社年月日],Date())-1)\12 & '年' & (DateDiff('m',[入社年月日],Date())-1) Mod 12 & 'ヶ月') 在籍中の方の勤続年数はこれで問題ないのですが、退職日欄に退職日付を入力した時に、退職日までの期間が表示されるようにしたいのですがどうしたらよいでしょうか? よろしくお願い致します。

  • Accessで年齢の計算

    Accessで年齢の計算 初心者です。 フォーム・クエリで計算式で表示させることはできたのですが,それをテーブルに反映させる方法が分かりません。テーブルには「年齢」列はあるのですが計算結果が反映されないので,テーブルから抽出をかけたいので,よろしくお教えください。よろしくお願いいたします。

  • Access2000で時間差を求める関数を教えてください

    日数の差を求める関数を知人に  =DATEDIFF() と教わりました。 日数ではなく、経過時間として表示させるにはどのようにしたらいいでしょうか? フォーム上に経過時間が出ればいいと思っておりますが、 加えて、テーブルにデータとして残るようになればなおいいなと考えています。 当方ACCESS2000を使用しており、全くの初心者です。 内容が込み入ってしまう場合、参考できるWEB・書籍のご紹介でも大変助かります。 何卒よろしくお願い致します。

専門家に質問してみよう