- 締切済み
アクセス2000/4月1日現在の年齢の計算方法を教えて下さい。
初歩的な質問ですがよろしくお願いします。 クエリーで、生年月日から4月1日時点での年齢のフィールドを持たせたいのですが、式の記述がよくわかりません。 現在の日付が1~3月の場合は前年の4月1日時点、4~12月の場合は当年の4月1日時点での年齢を算出したいのです。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ats8181oyaji
- ベストアンサー率38% (94/244)
No2の補足です この場合の 「生年」はテキスト型で西暦4桁です。 数値でもよかったですね(^^;;)
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは テーブルの項目が「生年」とします 更新クエリの計算する年齢のレコード更新に IIf(Month(Now())<4,Year(Now())-Val([生年])-1,Year(Now())-Val([生年])) とすれば、できますよ
- uckey7
- ベストアンサー率55% (5/9)
クエリーのフィールドに[基準日]と[年齢]を作成して、それぞれ 基準日: Format("2000/4/1","yyyy/mm/dd") 年齢: IIf(Format([誕生日],"mm/dd")>Format([基準日],"mm/dd"),DateDiff("yyyy",[誕生日],[基準日])-1,DateDiff("yyyy",[誕生日],[基準日])) とします。 ただし、誕生日が2000/4/1以降の場合、マイナスになってしまうのでこれを考慮しなくてはなりませんが・・・。
お礼
ありがとうございました。参考にさせていただきます。
補足
[基準日]はクエリーのフィールドとして持たずに、 年齢: IIf(Format([誕生日],"mm/dd")>Format([基準日],"mm/dd"),DateDiff("yyyy",[誕生日],[基準日])-1,DateDiff("yyyy",[誕生日],[基準日])) の[基準日]自体を式にして組み込んでしまいたいのです。 当然、"04/01"は固定でいいのですが、年の部分はその現在の月(1~3月か4~12月 か)によってIFで切り替えできるようにならないものでしょうか?
お礼
ありがとうございました。参考にさせていただきます。