- ベストアンサー
Access クエリについて
初めまして。Accessのクエリについての質問です。 Access2003です。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件に[forms]![フォーム名]![テキストボックス名]を入れています。 今は2つのテキストボックス両方に言葉を入力するとデータが抽出されますが、これを1つのテキストボックスだけ入力でもデータが抽出されるようにしたいのですが可能ですか?今は一つのテキストボックスに言葉を入力しもう一つを空欄にすると何もデータが出てこない状態です。 2つのテキストボックスをテキスト(1)とテキスト(2)とすると 以下のようにデータを抽出したいです。 ・テキスト(1)とテキスト(2)に入力 →両方の言葉が一致したデータ ・テキスト(1)だけに入力 →テキスト(1)の言葉だけ一致したデータ ・テキスト(2)だけに入力 →テキスト(2)の言葉だけ一致したデータ 初歩的な質問でしたら申し訳ないです。どうかお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>↑これをあいまい条件にするにはどこを変えればいいのですか? 曖昧な検索は Like を使います。 Like "*" & [Forms]![フォーム名]![テキストボックス名] & "*" 上記は、テキストボックスの内容を【含む】場合に、マッチします。 空欄の場合は全てにマッチします。 Like [Forms]![フォーム名]![テキストボックス名] & "*" 下記の場合は、テキストボックスの内容から【始まる】場合に、マッチします。 同じく、空欄の場合は全てマッチします。
その他の回答 (3)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>↑これをあいまい条件にするにはどこを変えればいいのですか? Nzを使う方法では難しいでしょうね Like "*" & [forms]![フォーム名]![テキストボックス名] & "*" or [forms]![フォーム名]![テキストボックス名] is null
- venzou
- ベストアンサー率71% (311/435)
仕様に不明な点がありますが、下記と仮定します ・テキスト(1)とテキスト(2)の両方が空欄 →全てのデータ クエリのデザインビューで作るなら、下記が分かりやすいと思います。 >[forms]![フォーム名]![テキストボックス名] 上記の部分を、下記に変更。 Nz([forms]![フォーム名]![テキストボックス名],[テーブル名].[フィールド名])
補足
できました!ありがとうございます! 補足というかもう1つ聞きたいのですが、 Nz([forms]![フォーム名]![テキストボックス名],[テーブル名].[フィールド名]) ↑これをあいまい条件にするにはどこを変えればいいのですか?
- CHRONOS_0
- ベストアンサー率54% (457/838)
抽出条件を =[forms]![フォーム名]![テキストボックス名] or [forms]![フォーム名]![テキストボックス名] is null のように書きます
お礼
できました!! 本当にありがとうございます。 助かりました。
お礼
ありがとうございます!! ほんとにほんとに助かりました。 本当に感謝します!