• 締切済み

Access2007において、[生年月日]をもとに本日の日付から「○歳

Access2007において、[生年月日]をもとに本日の日付から「○歳○月」までを算出するには、どのような式を立てればいいのでしょうか? ちなみに「○歳○月○日」まで算出するとなると、どうなりますか? 検索結果からだと、「○歳」まで算出する式はなんとなく分かったのですが…。 ご存知の方がいらっしゃったら是非教えて下さい。 宜しくお願い致します。

みんなの回答

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

DateDiff関数 Excelに似た関数に Datedif関数がありますが パラメータ、計算結果に違いがあります。 Datedif(開始日,終了日,"Y") 満年数 Datedif(開始日,終了日,"YM") 年未満の月数 これに対してDateDiffでは DateDiff("YYYY",開始日,終了日) 年未満の月、日の値を無視して年だけの差になります。 DateDiffには "YM" は使えませんので MOD 関数を使用することになります。 そのため DateDiff("M",開始日,終了日) で総月数を求め 年未満の月数を 月=総月数 MOD 12 とし 年=(総月数-月)/12 で 求めることも出来ますが 話が変わりますが、日付関数のパラメータにシリアル値がありますね シリアル値は10進数と同じく連続した0を超える数値です。 1900年1月1日を1(10進数)としています。日進数とでも言うのでしょうか 10進数と違う点は桁上がり、桁下がりのです。 日の上の桁が月(大の月、小の月、うるう年により桁上がりの日数が異なります) 月の上の桁が年 日の下の桁が時、時の下の桁が分、分の下の桁が秒 こんなわけで シリアル値の差が期間(日数)ということになり、 この差を表示書式を日付にすると、年に1900が加えられた表示にになります。 このシリアル値の差よりYear関数、Month関数で年月を取り出したのがNo.1の回答です。 追伸、このシリアル値は、MicrosoftOfficeだけのものと限定してください。 コンピュータの元は2進数です。これをどのように発展させているのかは自分には分かりません おそらく Mac UNIX では別の展開があると思います。

shigeayu-c
質問者

お礼

こんなに詳しく、突っ込んでご回答下さり、ありがとうございました。 ただ単に式を教えていただいただけでなかったことに、深く感謝致します。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.1

生年月日から本日迄の経過日数を求め、これを年月に分解します。 経過日数:date()-[生年月日]    年:year([経過日数])-1900 月:month([経過日数])

shigeayu-c
質問者

お礼

ありがとうございました。

shigeayu-c
質問者

補足

ご回答ありがとうございます。 すみません、ほとんど素人なもので、あまりよく分かっていないのですが。 ご説明の内容はなんとなく理解しました。 ただ、これまで読んできた年齢の求め方の説明に使われていたのが、もっぱらDateDiff関数だったので、DateDiff関数を使わなくても算出できるのかなぁ、ということと(引き算なので同じ計算なのですか?)、教えて頂いた式をそのまま放り込んでいいのかなぁ、という、二つの疑問を持ちました。 試してみるのが一番の答えですね…。

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

関連するQ&A

  • Excel関数:日付にナノ秒を足して年月日を求めるには?

    はじめまして、 日付にナノ秒を足して年月日を求める関数式を教えてください。例)日付“1601年1月1日”に長整数“128335644000000000”ナノ秒を足すと結果が年月日“2007年9月6日”と出るようにするにはどのような関数式が必要でしょうか。 宜しくお願いします。

  • アクセスで「本日日付」と「入社日付」から勤続年数をだせるようにしたいのです。。

    すみません。アクセスはじめて約2週間の初心者です。アクセスで「本日日付」と「入社日付」から勤続年数をだせるようにしたり、「本日日付」と「生年月日」から、満年齢(できれば、○才○か月などのように)を表示させるようにしたいのですが、まず「本日日付」というのが表示できません。。(涙)。。「today()」というのをどこかにいれればできるのかなとおもっていろいろ試したのですが何か簡単な方法はあるでしょうか?

  • アクセスでの生年月日入力について。

    アクセスで生年月日を入力して年齢を出すようにしていますが、生年月日の入力方法で和暦(H20/07/10)と入力して年齢を算出しています。これを( )年( )月( )日と簡単に数字のみ分割して入力するにはどのようにしたらよいのでしょうか?たびたび質問してもうしわけありません。よろしくお願いいたします。

  • ACCESSのフォームに本日の日付を西暦表示したいです。

    ACCESSのフォームに本日の日付を西暦表示したいです。たとえば・・・ 平成16年5月20日  という感じで・・・ どなたか教えてください・ テキストボックスを使っています。

  • Access2013 年月日迄の経過年月日表示

    Access2013で、備忘録作成の為、[年月日] をテーブルに短いテキスト形式で、 例20001205と初めの4桁を西暦、次の2桁を月、後の2桁を日で入力してあります。 『1952年11月27日』から、この年月日迄の、[経過年月日数] を自動的に表示させるクエリのフィールドへの記入式を教えて下さい。宜しくお願いします。

  • 日付け入りスタンプの年月日

    仕事で、日付け入りスタンプを使用しているのですが、 年月日を合わせる際に疑問が2つあります。 ひとつは、年度は、2ケタなのですが、平成(23)か西暦(11) のどちらがいいのでしょうか? ちなみに、1ケタ目の数字と一緒に、’が付いています。 もうひとつは、日にちは1ケタ(1日~9日)の時、 01か-1のどちらがいいでしょうか? よろしくお願い致します。

  • 日付の計算方法(1970年以前のデータを含む)

    過去の日付のデータがあって、今日までのの経過年月日を求めたいです。 (例)  データ 1980年1月5日  本日が2004年2月6日なので、求めたい結果は24年1月1日 日付のデータには1970年以前のデータも含まれるためタイムスタンプ(グリニッジ標準時)が使用できません。 関数などを使って簡単に求める方法はあるのでしょうか? どのようにしたら求められるかわかる方教えていただけませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • アクセス日付時刻の自動入力について。

    アクセス2000を使用しています。 日付入力を自動的に本日の日付で入力出来るように、 =Date()としたのですが、これに、時間もつけるようにしたいのと、表示を、平成**年**月**日**時**分としたいのですが、どのようにすればよいのでしょうか?? ちなみにVBAはむずかしくて使用出来ません。

  • 中国語で、(1)本日の日付は、9月16日です。と言う場合、どういう訳に

    中国語で、(1)本日の日付は、9月16日です。と言う場合、どういう訳になりますか? 単語だけ辞書で引くと、本日的日期是9月16号。となりそうですが、的、是が必要なのか、 どちらでもいいのか、あると間違いなのか?よく分かりません。 (2)本日の年月日は2010年9月16日です。と言う場合なら、どうなるのでしょうか? 簡単なフレーズですが、分かる方いればお願いします。

  • アクセス 指定日から将来の指定日までを算出する式を知りたい

    アクセス2000 職員の人事データ管理をしています。テーブルのフィールドに職員の生年月日や採用年月日を入力しています。 このフィールドをもとに、将来の指定日までの期間を算出したいのです。例えばS50年4月1日に採用された人が来年の平成16年3月31日現在での勤務年月を算出したいのです。 某QAサイトの類似質問に「12月31日現在の年齢の出し方がわからない。今日以降の年齢も算出できるのか?」というのがあり、その答えに「DateDiff("yyyy",[誕生日],Format(date,"yyyy")& "/12/31")」とありましたので、自分のテーブルをもとに、とりあえず今年の12月31日現在の勤務期間を出してみようと「DateDiff("yyyy",[採用年月日],Format(date,"yyyy")」& "/12/31")と入力したところ「パラメータの入力 採用年月日」というダイアログが出てしまいました。うーん、恥ずかしながらこの意味も分からない。 採用年月日などの過去の指定日から、年度末時など将来の指定日までの期間(年月)を算出するための式を教えていただけないでしょうか。

専門家に質問してみよう