パソコン情報

【Access】複数テキストボックスが空の場合は無視して値がある時だけ抽出できるクエリってできないの?

本当に簡単なクエリだと思っていましたが、

ポイント

複数のテキストボックスの値に対して未入力(未選択)の場合には抽出(検索)対象にせずに、入力がある場合だけ値を対象にして抽出(検索)する

というクエリを作成しましたが思うように動いてくれません。

1つのテキストボックス(コンボボックス)ではOK

上の画像のように、1つの項目で

空(Null)の場合は、全てのデータを表示させて、入力値がある時は入力値で抽出

って事は簡単にできます。

2つ(複数)のテキストボックス(コンボボックス)ではNG

上の図のようにすると、

ココに注意

両方のテキストボックスに入力値が無いと抽出ができない


のです。

ちなみに、上の図ですが、一度クエリを実行してデザインモードにしたら、自動でNullの部分が分けられていました。

IIFで条件を付けて実行してもNG

一行で処理ができないかと上のようなIIF関数を使って抽出することにしました。

テキストボックスがNull(未入力)なら、Like "*" (すべてを抽出)しろって感じのコードです。

結論できには、すべて抽出ができません。

じゃ、Likeじゃなく、ダブルコーテーション「""」にしたり、「Null」にしてみたりしましたがダメでした。

サクッと作りたかったのですが、結局VBAでフィルターでもやった方が早いかな!?ってなりましたが・・・

行数を増やすことで問題解決

 

なるほど、

ココに注意

行数増えても、全部の組み合わせで記述すれば問題解決

するようです。

 

だがしかし、2項目程度ならいいけど、もっとあったら凄い行の増え方になりますね。

どうしよう・・・やっぱりVBAでコード書いた方が良さそうですね。