• ベストアンサー
  • 困ってます

アクセスで和暦から6月3日現在の年齢

アクセスで和暦の生年月日から平成17年6月3日辞典の年齢をクエリで作成したいのですが、どうもうまくいきません。ちなみに現在まではわかるので、下記を改良すればいいとは思うのですが、よろしくお願いします。 年齢:IIf(Format([生年月日],"mmdd")>Format(Date(),"mmdd"),DateDiff("yyyy",[生年月日],Date())-1,DateDiff("yyyy",[生年月日],Date()))

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数735
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1

こんにちは。 >アクセスで和暦の生年月日から... ここで言う「和暦」とは表示の書式であって、フィールドの型は「日付/時刻型」であることが必要です。 【平成17年6月3日時点の場合】 年齢:IIf(Format([生年月日],"mmdd")>Format(#2005/6/3#,"mmdd"),DateDiff("yyyy",[生年月日],#2005/6/3#)-1,DateDiff("yyyy",[生年月日],#2005/6/3#)) で求められます。日付の場合 #2005/6/3# のように # でくくります。 【[調査日]を入力する場合(パラメーターを渡す)】 ユーザーが指定する任意の時点[調査日]における年令を計算する場合には、次の様になります。 年齢:IIf(Format([生年月日],"mmdd")>Format([調査日],"mmdd"),DateDiff("yyyy",[生年月日],[調査日])-1,DateDiff("yyyy",[生年月日],[調査日]))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。#2005/6/3#というのがわかりませんでした。これで処理がやりやすくなります。

関連するQ&A

  • ACCESS #errorの表示させないには・・・

    フォームで[現在年令](テキストボックス)に下記の設定がしてあります =IIf(Format([社員_生年月日和暦],"mmdd")>Format(Date(),"mmdd"),DateDiff("yyyy",[社員_生年月日和暦],Date())-1,DateDiff("yyyy",[社員_生年月日和暦],Date())) 新規の登録をする場合には[社員_生年月日和暦]が空欄のため[現在年令]に#Errorと表示されてしまいます [社員_生年月日和暦]が空欄の場合は[現在年令]も空欄にしたいのでどうすればいいか教えてください どうぞ宜しくお願いします

  • Accessの年齢関数について教えてください

    初心者です。 Accessのクエリーで、生年月日から年齢を算出したいです。 Year(Date())-Year([生年月日])-Abs(Format(DateAdd('d',-((Year([生年月日]) Mod 4=0 And Year([生年月日]) Mod 100<>0) Or (Year([生年月日]) Mod 100=0)),[生年月日]),'mmdd')>Format(Date(),'mmdd')) これをいれると、生年月日が空白のとき#Errorになります。 空白のときエラーが表示されないようにしたいです。 IIf(IsNull([生年月日])),"",Nz(Year(Date())-Year([生年月日])-Abs(Format(DateAdd('d',-((Year([生年月日]) Mod 4=0 And Year([生年月日]) Mod 100<>0) Or (Year([生年月日]) Mod 100=0)),[生年月日]),'mmdd')>Format(Date(),'mmdd'))) これでは、おかしいとAccessがいいます。 お願いします。

  • アクセス2000誕生日から満年齢出し方

    テーブルですが 最後の列が生年月日フォームなっています。 形式はyyyy/mm/ddです 友人に聞いてその回答は DateDiff("yyyy",[生年月日],Date())この式を クエリの生年月日フィールドの右側の空欄のフィールドへ入れるとでてくるよ。の回答で実行したら 式1:DateDiff("yyyy",[生年月日],Date())とでて クエリには 年齢がでてきました。 そこで 質問ですが テーブルに誕生日のフォームに生年月日打ち込むと 横の仮に「年齢」フォームに自動ででてくるようにするには どうしたらよいのでしょうか。 教えてください。

  • ACCESS97で現在の日付から勤続年月数を算出する関数

    ACCESS97で社員名簿を作っています。 現在の日付から年齢を算出する関数は調べたところ次のようにすればよいとわかりました。 IIf(Right(Format([生年月日],"yyyy/mm/dd"),5)>Right(Format(Now(),"yyyy/mm/dd"),5),DateDiff("yyyy",[生年月日],Now())-1,DateDiff("yyyy",[生年月日],Now())) 次は現在日から入社年月日フィールドにあるデータを使い、勤続年数○年○ヶ月というクエリーを作りたいのですが、○ヶ月を算出する応用がわからずに困っております。 どうかよろしくお願いします。

  • Accessの入力について

    Accessのクエリに生年月日から年齢を計算する演算フィールドを作りたいと思い本の通り計算式を入力したのですがうまくいきません。 年齢:Fix(Format(date(),"yyyy.mmdd")-Format([生年月日],”yyy。mmdd”))で間違いないのでしょうか? 疑問点は  ”の使用が合っているのか?です。 その他エラーになりそうな事がありましたら、教えてください。 また、式ビルダを起動した時、生年月日の隣のフィールドに入力しないとエラーが出るのでしょうか? 現在の生年月日の隣のフィールドは他の名前のクエリになっています。(間に入れる方法が分かりません)

  • Access2000にてお寺の管理dbを作っています。御法事の回忌を抽

    Access2000にてお寺の管理dbを作っています。御法事の回忌を抽出したくテーブルに没年月日、回忌のフィールドを作りクエリの回忌のフィールドに回忌:IIF(Format([没年月日],"mm/dd")>Format(Date(),"mm/dd"),DateDiff("yyyy",[没年月日],Date())-1,DateDiff("yyyy",[没年月日],Date()))と回答をいただき 回忌:IIF(Format([没年月日],"mm/dd")<Format(Date(),"mm/dd"),DateDiff("yyyy",[没年月日],Date())+1,DateDiff("yyyy",[没年月日],Date())) >を< -1を+1 にしてできたのですが。 Date()ですと今年の御命日が来るまでは50回忌のひとでも49回忌になってしまいます。 御命日が来なくても(御法事の申し込みは命日の数日、数か月前が多いので)今年の回忌を出させるにはどうしたらいいのでしょうか?

  • Access 2000での年齢計算

    Access 2000にて作成しているデータベースのレポートにて、顧客の年齢を計算しています。基本的には正しい年齢が表示されるのですが、一部の方の分だけ年齢の計算結果が正しくありません。現時点で見つかっている事例は2件のみですが、正しい年齢より1年多かったり、逆に1年少なかったりと、パターンが一定しているわけでもないため、どこに問題があるのかが分かりません。確認してみるべき点について色々お教え頂ければ幸いです。 記 ◎年齢計算に使っている関数は以下の通りです。 =Trim(IIf(Format([生年月日],"mm/dd")>=Format(Now(),"mm/dd"),DateDiff("yyyy",[生年月日],Now()),DateDiff("yyyy",[生年月日],Now())-1) & "歳") 「生年月日」フィールドに西暦で生年月日が格納されており、レポートを印刷する時点での日付と誕生日を比較することで、単純に年数の引き算をしたり、更に1を引いたりしています。 以上

  • Access2000にてお寺の管理dbを作っています。御法事の回忌を抽

    Access2000にてお寺の管理dbを作っています。御法事の回忌を抽出したくテーブルに没年月日、回忌のフィールドを作りクエリの回忌のフィールドに回忌:IIF(Format([没年月日],"mm/dd")>Format(Date(),"mm/dd"),DateDiff("yyyy",[没年月日],Date())-1,DateDiff("yyyy",[没年月日],Date()))としたのですがコーテーションエラーになってしまいます。 どのようにしたらいいのでしょうか? 回忌ですから亡くなった翌年が1周忌2年目が3回忌になります。

  • Accessで誕生日から年齢を計算する

    Microsoft Office Updateで「Accessで誕生日から年齢を計算する」と言う項目があり、式がのっているのですが、フォームのコントロースロースに =Datediff("yyyy",[誕生日],now())+int(format(now(),"mmdd")<format([誕生日],"mmdd")) と入力するとあるのですが、式中にある"INT"の意味がわかりません。 この式でのINTは何を表しているのですか? よろしくお願いします。

  • アクセス 指定日から将来の指定日までを算出する式を知りたい

    アクセス2000 職員の人事データ管理をしています。テーブルのフィールドに職員の生年月日や採用年月日を入力しています。 このフィールドをもとに、将来の指定日までの期間を算出したいのです。例えばS50年4月1日に採用された人が来年の平成16年3月31日現在での勤務年月を算出したいのです。 某QAサイトの類似質問に「12月31日現在の年齢の出し方がわからない。今日以降の年齢も算出できるのか?」というのがあり、その答えに「DateDiff("yyyy",[誕生日],Format(date,"yyyy")& "/12/31")」とありましたので、自分のテーブルをもとに、とりあえず今年の12月31日現在の勤務期間を出してみようと「DateDiff("yyyy",[採用年月日],Format(date,"yyyy")」& "/12/31")と入力したところ「パラメータの入力 採用年月日」というダイアログが出てしまいました。うーん、恥ずかしながらこの意味も分からない。 採用年月日などの過去の指定日から、年度末時など将来の指定日までの期間(年月)を算出するための式を教えていただけないでしょうか。