• ベストアンサー

ACCESSで2つフィールドの日付を比較して新しい日付を表示するには。

お世話になっております。 ちょっとつまづいてしまったので、知恵をお貸しください。 AとBのフィールドにそれぞれ日付が入っていて、比較して新しい日付のものをCのフィールドに表示させたいと思っています。 例: A:2006/05/31  B:2006/06/01 → C:2006/06/01 A:2006/06/02  B:2006/06/01 → C:2006/06/02 A:2006/06/01  B:2006/06/01 → C:2006/06/01 以上のようにするにはどうすればよいでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>Jetデータベースエンジンで、入力検査の式にあるフィールド’A'またはテーブル’テーブル名’の規定値が認識されません。 これはテーブルのエラーですね。 テーブルの既定値に式を入れているのでエラーになります。 テーブルのフィールド内では出来ません。クエリやフォーム上のプロシージャなどで新しい日付をCのフィールドに更新させるように処理しないと出来ません。(AccessはExcelなどの表計算ソフトではありませんので) 更新クエリでCのフィールドに IIf([A]<[B],[B],[A]) として更新すれば出来ます。 フォーム上ではA・B・CがあればBのコントロールの更新後処理などに Me![C]=IIf([A]<[B],[B],[A]) などの様にCに代入するようにすれば出来ます。

wapparice
質問者

お礼

ありがとうございます。 たしかに、そうでした。夜中に一人で考えてると迷いの森に入ってしまいます。解決できました。とても助かりました。

その他の回答 (1)

  • marumaruo
  • ベストアンサー率62% (20/32)
回答No.1

IIf([A]<[B],[B],[A]) これでAとBで新しい日付のほうが表示され、AとBが同じだった場合はAが表示されますが、こういうことじゃないですか?

wapparice
質問者

補足

ありがとうございます。 しかし、それを規定値の欄に入力すると Jetデータベースエンジンで、入力検査の式にあるフィールド’A'またはテーブル’テーブル名’の規定値が認識されません。 となり、エラーになります・・・ 式を入力する場所が違うのですかね・・・?

関連するQ&A