プロが教えるわが家の防犯対策術!

初歩的な質問ですがよろしくお願いします。
クエリーで、生年月日から4月1日時点での年齢のフィールドを持たせたいのですが、式の記述がよくわかりません。
現在の日付が1~3月の場合は前年の4月1日時点、4~12月の場合は当年の4月1日時点での年齢を算出したいのです。
どうぞよろしくお願いします。

A 回答 (3件)

クエリーのフィールドに[基準日]と[年齢]を作成して、それぞれ


基準日: 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で切り替えできるようにならないものでしょうか?

補足日時:2002/09/05 10:30
    • good
    • 3
この回答へのお礼

ありがとうございました。参考にさせていただきます。

お礼日時:2002/09/08 13:59

No2の補足です



この場合の
「生年」はテキスト型で西暦4桁です。
数値でもよかったですね(^^;;)
    • good
    • 0
この回答へのお礼

ありがとうございました。参考にさせていただきます。

お礼日時:2002/09/08 13:58

こんにちは



テーブルの項目が「生年」とします

更新クエリの計算する年齢のレコード更新に

IIf(Month(Now())<4,Year(Now())-Val([生年])-1,Year(Now())-Val([生年]))

とすれば、できますよ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています