- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数字の比較の結果がおかしい。)
数字の比較の結果がおかしい
このQ&Aのポイント
- アクセスのクエリで、日付の比較を行っています。生年月日の年月日を抽出するために、Year([生年月日])、Month([生年月日])、Day([生年月日])を使用しています。任意の日付をフォームから入力するために、任意年、任意月、任意日としています。
- 比較の結果を表示するために、IIf([任意月]>[月],"マイナス","プラス")としています。
- 現在の比較では、月が6で任意月が11の場合はプラス、月が1で任意月が11の場合はマイナスとなってしまいます。正しい結果を表示するためには、どこを修正すれば良いでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
えーと、若干情報不足ですが、このようなことだと思います。 まず、 [任意月] = [forms]![F_任意検索]![月] [月] = Month([生年月日]) ということでよろしいですか? 変数にそれぞれの値を格納していますか? 直接、比較しているとすると、フォームの[月]は、String扱いです。 変数の型は比較の左辺が優先されてしまうので、String比較になってしまいますね。 明示的に数値に変換するには、Val関数、CInt関数などを使います。 IIf(Val([任意月])>Val([月]),"マイナス,"プラス") CIntは、空文字列などではエラーを返すので、Valの方がいいかもしれません。 また、明示的に型を宣言した変数に代入するのも有効です。
お礼
回答ありがとうございます。 無事なんとか比較することができました。 ありがとうございました。