- ベストアンサー
Access 生年月日19900205から年令
Access2013で、生年月日をテーブルに短いテキスト形式で、例19900205 と,初めの4桁を西暦、次の2桁を月、後の2桁を日で入力してるのですが、これを基に、今日付けの年令を自動的に表示させるクエリ設定方法を教えて下さい。宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
年令: Year(Date())-Left([生年月日],4)+(Format(Date(),'mmdd')<Right([生年月日],4)) とか。
その他の回答 (5)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- chayamati
- ベストアンサー率41% (260/624)
既に回答が出ています。 http://okwave.jp/qa/q3175119.html のベストアンサーが参考になります。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
× Public Function GetAge(ByVal dteBirthday As Date, ByVal dteToday As Date, Optional isSeiki As Boolean = True) As Integer 〇 Public Function GetAge(ByVal dteBirthday As Date, ByVal dteToday As Date) As Integer 失礼。正規計算と非正規計算の両方をサポートしたつもりでしたが・・・。片方のみでした。よって、宣言部を訂正して下さい。もちろん、第三引数は無用です。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q、今日付けの年令を求めるには? A、私ならば、以下の年齢計算関数を用います。 Public Function GetAge(ByVal dteBirthday As Date, ByVal dteToday As Date, Optional isSeiki As Boolean = True) As Integer Dim intAge 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") intAge = Fix((lngValue_1 - lngValue_2) / 10000) GetAge = intAge End Function 3つめの引数に False を指定すると法令を無視した年齢を返します。何も指定しないと法令に基づいた年齢を返します。この関数の利用方法は、添付図を参照してください。
補足
いつもありがとうございます。 年齢計算関数を書き入れるは、どこか教えてください。クエリも初心者です。 よろしくお願いします。
お礼
ありがとうございました。クエリの初心者の私でもできました。また、宜しくお願いします。 クエリの種類/選択 フィールド/ 年令: Year(Date())-Left([生年月日],4)+(Format(Date(),'mmdd')<Right([生年月日],4)) テーブル/空欄