dポイントプレゼントキャンペーン実施中!

アクセスのクエリで、日付の比較を行っています。
もともとはいっている生年月日の年月日を抽出するために
Year([生年月日])
Month([生年月日])
Day([生年月日])
のようにそれぞれ出しました。
任意で指定できる日付をフォームから入力するために、
任意年: [forms]![F_任意検索]![年]
任意月: [forms]![F_任意検索]![月]
任意日: [forms]![F_任意検索]![日]
としました。

それぞれのプロパティで書式設定を「数値」に変更はしてみました。

これで
比較: IIf([任意月]>[月],"マイナス,"プラス")
として結果をみてみると、
月が6で任意月が11の場合=プラス
月が1で任意月が11の場合=マイナス
となってしまいます。

どこをなおせばきちんと表示されるでしょうか?

A 回答 (1件)

えーと、若干情報不足ですが、このようなことだと思います。



まず、
[任意月] = [forms]![F_任意検索]![月]
[月] = Month([生年月日])
ということでよろしいですか?
変数にそれぞれの値を格納していますか?
直接、比較しているとすると、フォームの[月]は、String扱いです。
変数の型は比較の左辺が優先されてしまうので、String比較になってしまいますね。
明示的に数値に変換するには、Val関数、CInt関数などを使います。
IIf(Val([任意月])>Val([月]),"マイナス,"プラス")
CIntは、空文字列などではエラーを返すので、Valの方がいいかもしれません。
また、明示的に型を宣言した変数に代入するのも有効です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

無事なんとか比較することができました。
ありがとうございました。

お礼日時:2003/11/11 14:56

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