• ベストアンサー

Access2013 生年月日から年令自動表示方法

Access2013で、生年月日のフィールドを基に、今日付けの年令を自動的に表示させるフィールドの設定方法を教えて下さい。宜しくお願いします。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.5

No.2 です。 > 誕生日を、昭和00年00月00日 と入力してあるのですが フィールドが 「日付時刻型 」なら、 書式の問題だけで、フィールドの値は変わりませんから、 そのままの式が使えます。 フィールドが 「テキスト型」 なら、 日付として認識できる文字列が入っている限りはそのままで動作しますが 空文字列、あるいは 2月30日 など、有り得ない日付が入力されている可能性が排除できないので その場合のエラーを避けるような式が必要になります。 年齢: IIf(IsDate([生年月日]),DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd")),Null)

hasegawa-t
質問者

補足

出来ました。テーブルのフィールドに直接設定する方法があれば教えてください。宜しくお願いします。

その他の回答 (5)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.6

No.5 です。 > テーブルのフィールドに直接設定する方法があれば教えてください。 私は 2007 ですので試したことはありませんが。 Access 2010 のテーブル デザインで集計列を使用する https://msdn.microsoft.com/ja-jp/library/office/ff945943(v=office.14).aspx 手順のところに書かれている内容を十分理解することをお勧めします。 余計なことかもしれませんが 自分だけが使う場合には何でもありですが 他の人がメンテする場合など トラブルが発生することも有り得るので テーブルで、というのは個人的にはお勧めできません。 自分はルックアップフィールドも使いません。

回答No.4

【お詫びのお詫び】「重大なミス!」は勘違いでした。 添付図のように、ちゃんと誕生日の前日に歳を加算できていました。なお、法令に基づく年齢計算ではなく誕生日で加算する場合には dteToday = DateAdd("d", 1, dteToday) の1行は不要です。

回答No.3

【お詫び】GetAge()関数は、重大なミスを犯していましたので撤回します。

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

本家 Microsoft の方法はこちら。 生年月日から年齢を計算する方法 http://support.microsoft.com/kb/881380/JA 多少、冗長なところもあるので。より簡単に。 上記と同じ結果を返します。 年齢: DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd"))

hasegawa-t
質問者

補足

誕生日を、昭和00年00月00日 と入力してあるのですが、この場合はどうしたらよいのでしょう。関数がわからないので、よろしくお願いします。

回答No.1

私なら、添付図のようにユーザー関数を利用します。 Public Function GetAge(ByVal dteBirthday As Date, ByVal dteToday As Date) As Integer   Dim lngValue_1 As Long   Dim lngValue_2 As Long      dteToday = DateAdd("d", 1, dteToday)   lngValue_1 = Format(dteToday, "yyyy") * 10000 + Format(dteToday, "mm") * 100 + Format(dteToday, "dd")   lngValue_2 = Format(dteBirthday, "yyyy") * 10000 + Format(dteBirthday, "mm") * 100 + Format(dteBirthday, "dd")   GetAge = Fix((lngValue_1 - lngValue_2) / 10000) End Function SELECT ID, 生年月日, GetAge([生年月日],date()) AS 年齢 FROM テーブル2;

関連するQ&A

  • Access2013 テーブルに年令の自動表示方法

    Access2013で、生年月日をテーブルに短いテキスト形式で(昭和00年00月00日)と入力してるのですが、これを基に、今日付けの年令を自動的に同じテーブルに表示させる設定方法を教えて下さい。宜しくお願いします。

  • Access 生年月日19900205から年令

    Access2013で、生年月日をテーブルに短いテキスト形式で、例19900205 と,初めの4桁を西暦、次の2桁を月、後の2桁を日で入力してるのですが、これを基に、今日付けの年令を自動的に表示させるクエリ設定方法を教えて下さい。宜しくお願いします。

  • access2003で生年月日から年度初めの年齢を算出したいのですが…

    Access2003で名簿を作成中です。 やりたいことは以下の2つです。 1.クエリで、"生年月日"フィールドから年度初め(2010/4/1現在)の年齢を自動的に"年齢"フィールドに表示させたい 2.上記のクエリをもとに、新規入力用のフォームをつくり、やはり生年月日を入れたら自動的に年度初めの年齢が出るようにしたい。 これに必要な設定や記述を教えてください。 ちなみにクエリのもとにしているテーブルの"生年月日"フィールドのデータ型は「日付/時刻型」にし、書式は「日付(S)」にしています。 よろしくお願いします。

  • Access2013 年月日付けの年齢表示

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

  • ACCESS 生年月日から数え年の計算方法

    ACCESS2003を使っています。 クエリーで「生年月日」フィールドの値を利用して、「年齢」フィールドに数え年を表示したいのですが、下記のように「生年月日」には、年、年月、年月日と値がバラバラです。 表示したいのは、ただ正月になったら1足すだけの数え年なので、何かいい方法があったら教えてください。 名前|生年月日 |年齢 ああ|1973    | いい|1973/12/ | うう|1971/12/22|

  • Accessで生年月日から現在の年齢を求めるには?

    Access2002を使用しています。 生年月日のフィールドに「1965/05/01」を入力しているとします。 その場合、現在の年齢フィールドに今日現在の年齢の「41歳」と出すようにするにはどういった式をどこに入れればよいでしょうか? また、現在の年齢と何ヶ月かまで求めることは出来ますか? 例えば上記の例ですと、「41歳3ヶ月」と。 勿論、何ヶ月というフィールドは別に作ってもOKです。 どうぞよろしくお願い致します。

  • 生年月日で年齢を出すには?

    アクセスで生年月日で年齢を出すにはどうしたらいいんでしょう!? また年齢が自動更新するやり方があったら加えて教えてください!! お願いします☆

  • Access 生年月日を西暦入力し和暦表示方法は

    Access2013 テーブルに短いテキスト形式で生年月日を西暦(0000/00/00)と入力してあるのですが、これを基に、フォームでは和暦(昭和00年00月00日)と表示させる設定方法を教えてください。よろしくお願いします。

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

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

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

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

専門家に質問してみよう