- ベストアンサー
Access2013 生年月日から年令自動表示方法
Access2013で、生年月日のフィールドを基に、今日付けの年令を自動的に表示させるフィールドの設定方法を教えて下さい。宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.2 です。 > 誕生日を、昭和00年00月00日 と入力してあるのですが フィールドが 「日付時刻型 」なら、 書式の問題だけで、フィールドの値は変わりませんから、 そのままの式が使えます。 フィールドが 「テキスト型」 なら、 日付として認識できる文字列が入っている限りはそのままで動作しますが 空文字列、あるいは 2月30日 など、有り得ない日付が入力されている可能性が排除できないので その場合のエラーを避けるような式が必要になります。 年齢: IIf(IsDate([生年月日]),DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd")),Null)
その他の回答 (5)
- m3_maki
- ベストアンサー率64% (296/460)
No.5 です。 > テーブルのフィールドに直接設定する方法があれば教えてください。 私は 2007 ですので試したことはありませんが。 Access 2010 のテーブル デザインで集計列を使用する https://msdn.microsoft.com/ja-jp/library/office/ff945943(v=office.14).aspx 手順のところに書かれている内容を十分理解することをお勧めします。 余計なことかもしれませんが 自分だけが使う場合には何でもありですが 他の人がメンテする場合など トラブルが発生することも有り得るので テーブルで、というのは個人的にはお勧めできません。 自分はルックアップフィールドも使いません。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【お詫び】GetAge()関数は、重大なミスを犯していましたので撤回します。
- m3_maki
- ベストアンサー率64% (296/460)
本家 Microsoft の方法はこちら。 生年月日から年齢を計算する方法 http://support.microsoft.com/kb/881380/JA 多少、冗長なところもあるので。より簡単に。 上記と同じ結果を返します。 年齢: DateDiff("yyyy",[生年月日],Date())+(Format([生年月日],"mmdd")>Format(Date(),"mmdd"))
補足
誕生日を、昭和00年00月00日 と入力してあるのですが、この場合はどうしたらよいのでしょう。関数がわからないので、よろしくお願いします。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
私なら、添付図のようにユーザー関数を利用します。 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;
補足
出来ました。テーブルのフィールドに直接設定する方法があれば教えてください。宜しくお願いします。