- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSクエリエラーの原因)
ACCESSクエリエラーの原因と解決方法
このQ&Aのポイント
- ACCESS2007でクエリを実行する際に「#error」と出力される原因について調査中です。クエリの内容は体重を元にレベルに分けるためのIIf関数を使用しています。しかし、体重が入力されている全てのレコードでエラーが発生しているため、解決方法を探しています。
- クエリの条件で使用されているweight、SD3n、SD2n、SD2p、SD3pのフィールドはすべて数値型に設定されています。クエリを初めて作成した時は正常に動作していたため、何か変更された可能性があります。アドバイスをいただけると助かります。
- 条件部分を「is Null」に変更した場合、体重が入力されているレコードについて全て「5」が返される現象が発生しました。本来はデータの内容に応じて適切な値が返るはずです。問題の原因を特定できずに困っています。アドバイスがあればお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
IIf([weight]<>"", ではなく、 IIf(IsNull([weight]), です。 weightは数値型なのに、[weight]<>"" はweightをテキスト型として評価しています。
お礼
回答ありがとうございます。 結果から報告しますと、うまくいきました。 教えていただいた方法でやると、 IIf([weight] is Null, でやった場合と同じ結果が出ました。 よく確認すると、もともとの条件文は「""でない場合」なので、 「[weight] is Null」や「IsNull([weight])」では反対の条件になってしまってました。 それで、IIf関数の2番目と3番目を入れ替えると正常に期待した値が返ってきました。 数値型の場合/テキスト型の場合のNULL判定方法の使い分けがあいまいでしたので、 勉強になりました。 ありがとうございました。