ACCESSクエリについて教えてください。
ACCESSクエリについて教えてください。 あるフォーム上にあるチェックボックスのON/OFFによって、クエリの検索条件を切り替えたいです(ONの時はフィールド[A]が空欄のもの、OFFの時は空欄以外を抽出する)。そこでフィールド[A]の抽出条件に以下の様に記述しましたが、結果としてはチェックボックスのON/OFFに関わらず何も抽出されません。 IIf([Forms]![フォーム名]![チェック1]=True,Is Null,Not Is Null) 過去の質問等も探したのですが、同じようなケースが見当たりませんでしたので、もしかすると何か根本的な勘違いをしている気もするのですが、教えていただけると幸いです。
Microsoft Access・23閲覧
ベストアンサー
結論から言うと、Null との比較で = を使うと常に選ばれないので >チェックボックスのON/OFFに関わらず何も抽出されません。 の状態になってしまいます。 クエリの内容をSQLビューを見るとわかるのですが、AccessがクエリをSQLに変換する時、関数を使うと「=」で比較してしまうので「= Null」または「= Not Null」と言う式になってしまうので、常に抽出されません。 そこでIsNullやNZを使った値との比較で式を作ってみてください。 例えば IsNull([フィールド名])=[Forms]![フォーム名]![チェック1] などです。
質問者からのお礼コメント
アルルカン様 ご教示いただき、どうもありがとうございます。 教えていただいた内容を参考に、以下の様に対処しました。 ①式1:IsNull([フィールド名])で-1,0を判定するフィールドを追加 ②判定フィールドの抽出条件に以下を記述。 IIf([Forms]![タスク検索]![チェック93]=True,0,-1) ACCESSって難しいですね。
お礼日時:3/2 19:50