![マイクロソフトアクセス](https://pctips.jp/wp-content/uploads/2019/06/20170601-07.jpg)
本当に簡単なクエリだと思っていましたが、
ポイント
複数のテキストボックスの値に対して未入力(未選択)の場合には抽出(検索)対象にせずに、入力がある場合だけ値を対象にして抽出(検索)する
というクエリを作成しましたが思うように動いてくれません。
1つのテキストボックス(コンボボックス)ではOK
![](https://pctips.jp/wp-content/uploads/2020/06/d1.png)
上の画像のように、1つの項目で
空(Null)の場合は、全てのデータを表示させて、入力値がある時は入力値で抽出
って事は簡単にできます。
2つ(複数)のテキストボックス(コンボボックス)ではNG
![](https://pctips.jp/wp-content/uploads/2020/06/d2.png)
上の図のようにすると、
ココに注意
両方のテキストボックスに入力値が無いと抽出ができない
のです。
![](https://pctips.jp/wp-content/uploads/2020/06/d3.png)
ちなみに、上の図ですが、一度クエリを実行してデザインモードにしたら、自動でNullの部分が分けられていました。
IIFで条件を付けて実行してもNG
![](https://pctips.jp/wp-content/uploads/2020/06/d4.png)
一行で処理ができないかと上のようなIIF関数を使って抽出することにしました。
テキストボックスがNull(未入力)なら、Like "*" (すべてを抽出)しろって感じのコードです。
結論できには、すべて抽出ができません。
じゃ、Likeじゃなく、ダブルコーテーション「""」にしたり、「Null」にしてみたりしましたがダメでした。
サクッと作りたかったのですが、結局VBAでフィルターでもやった方が早いかな!?ってなりましたが・・・
行数を増やすことで問題解決
![](https://pctips.jp/wp-content/uploads/2020/06/d5.png)
なるほど、
ココに注意
行数増えても、全部の組み合わせで記述すれば問題解決
するようです。
だがしかし、2項目程度ならいいけど、もっとあったら凄い行の増え方になりますね。
どうしよう・・・やっぱりVBAでコード書いた方が良さそうですね。