• ベストアンサー

生年月日計算結果が0才未満の場合、「未出生」と表示したい。

タイトルだけをみると簡単そうなのですが、やってみてできなかった ので質問させて頂きます。 以前こちらでACCESSの表形式フォームで年齢計算結果を表示する 方法をご教示頂いたのですが(http://okwave.jp/kotaeru.php3?q=2096513)、 年齢計算結果が0才未満の場合、「-2才」などと表示されてしまいます。 0才未満の場合、「未出生」などと表示したいのですが、どのように すればよろしいでしょうか。非連結フィールドには現在、 =DateDiff("yyyy",[生年月日],[Forms]![詳細]![日付])+(Format([Forms]![詳細]![日付],"mmdd")<=Format([生年月日],"mmdd")) とだけ入っていて、これの頭にIF文をつけてみましたが、「name?」と なってだめでした。

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

  • ベストアンサー
  • Chimrin
  • ベストアンサー率49% (42/85)
回答No.1

コントロールソースに関数を指定することでも解決できそうな気もしますが、表示するだけならばテキストボックスの「書式」を「0\才;"未出生"」と指定しても何とかなりそうです。 数値型データのカスタム書式の一例です。セミコロンで区切った最初の項目は正の数値の書式、二つ目の項目は負の数値の書式を表します。詳しくはヘルプ等を参照してください。

nozomi300k
質問者

お礼

ありがとうございます! 一発でできました。(^^)

その他の回答 (2)

  • KG_
  • ベストアンサー率62% (34/54)
回答No.3

プログラムを組めるのなら 自分で関数作ってやるのも手かと思います。 メンテナンスも楽ですし。

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.2

=iif(date<[生年月日],"未出生",DateDiff("yyyy",[生年月日],[Forms]![詳細]![日付])+(Format([Forms]![詳細]![日付],"mmdd")<=Format([生年月日],"mmdd"))) こんなんでどうでしょう?

nozomi300k
質問者

お礼

ありがとうございました。

関連するQ&A

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

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

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

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

  • Access 2000での年齢計算

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

  • 生年月日から年齢を計算したい。

    アクセスのクリエを使って、年齢を年・月単位で計算をしたいのですで教えてください。 過去のある月に遡って、生年月日から年齢を出したいのです。 フィールドには、[生年月日]があるのでDateDiff関数を 使えばよいと思うのですが、うまくいきません。ご存知の方、アドバイスをお願いします。

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

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

  • 生年月日から学年を計算しようと以下のようにVBを用いて作りました。が、

    生年月日から学年を計算しようと以下のようにVBを用いて作りました。が、9月までは正しく学年が表示されたのですが、10月になったとたん、一つ前の学年が表示されるようになりました。 Function Jokyo(ByVal Umare As Variant) As String Dim idx As Integer Dim moji As String If IsNull(Umare) Then Jokyo = "" Exit Function End If '4月~12月での学齢計算 If Month(Date) >= "4" Then idx = DateDiff("yyyy", Umare, DateSerial(Year(Date), 4, 1)) If Format(Umare, "mmdd") < "0401" Then idx = idx + 1 End If ElseIf Month(Date) < "4" Then idx = DateDiff("yyyy", Umare, DateSerial(Year(Date) - 1, 4, 1)) If Format(Umare, "mmdd") < "0401" Then idx = idx + 1 End If Else idx = 19 End If '-------------------------------------------------- Select Case idx Case 0 To 4 moji = "未入学" Case 5 moji = "幼稚園年少" Case 6 moji = "幼稚園年長" Case 7 To 12 moji = "小学" & idx - 6 & "年生" Case 13 To 15 moji = "中学" & idx - 12 & "年生" Case 16 To 18 moji = "高校" & idx - 15 & "年生" Case Else moji = "既卒生" End Select Jokyo = moji End Function

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

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

  • Accessの入力について

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

  • Accessでの年度末の年齢表示について

    Accessで生年月日から今年度の年度末の年齢表示を次のようにしたところうまく表示されません。 年度末年齢: DateDiff("yyyy",[生年月日],2009/3/31) ここ数日考えましたがわかりません。 よろしくお願いします。

  • 生年月日計算について

    テーブル(A)     テーブル(B) ID --- 111      ID ---111 生年月日 --- 2007/02/18    日付 --2008/10/3 テーブル(A)には、ID、生年月日があります。 テーブル(B)には、ID、日付があります。 テーブル(A)の生年月日とテーブル(B)の日付を計算し 表示したいと考えていますが、うまく行きません…。 やりたい事としては、テーブル(B)の値とテーブル(A)の値を計算し 2008 - 2007 = 1なので1才と表示し、 10 - 02 = 8なので、8ヶ月と表示したいと考えています。 やり方として一番どのようなやり方が キレイなSQLを書けるのでしょうか? 一応http://ayuayuayu01.seesaa.net/article/106439889.htmlを参考にして やるか、またはSUBSTRで行う方法をイメージしています。 出来れば1回で実行したいので、SUBSTRは向いていないのかなぁっと思っています。

専門家に質問してみよう