- ベストアンサー
複数条件を満たすレコード検索方法
- 複数条件を満たすレコードを検索する方法について教えてください。
- 現在フォームのコマンドボタンでサブフォームの絞込みを行っていますが、複数の条件を全て満たすにはどうすれば良いのでしょうか?
- 顧客コードと顧客名を同時に入力して検索すると、顧客コードを無視して顧客名だけを検索してしまいます。解決方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最終的に「条件式になる文字列」を作らないとダメです。 全て満たすとこのようになります。(001,01は値のダミーです。) "顧客コード like '001' and 顧客区分 like '01' and 顧客名カナ like '*太郎*'" なので、 & " AND " です。 例をあげるなら、 S顧客.Form.Filter = "顧客コード like '" & txt顧客コード.Value & "'" & " AND " & "顧客区分 like '" & cmb顧客区分.Value & "'"
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
条件の整理: txt顧客コード=A cmb顧客区分=B txt顧客名=C とし、紙と鉛筆で計算すると、 cmd検索クリック時のオプションの組み合わせは、 A〇〇〇〇XXXX BX〇X〇〇X〇X CXX〇〇X〇〇X いろいろ方法はありますが、 これらのオプションの組み合わせを IF文のネストとエラー処理で行う、 というのが一案です。 (組み合わせを全部網羅すればエラー 処理は必要ありませんが。) If A Then If not B Then If not C Then 処理 End If End If End If など。 オプションの組み合わせがこのくらいならば これでもいいのでは、と思いますが。 これに、本来は単独でオプションに加える カナ検索を追加した組み合わせの数を 計算すると、「イヤダモウ」、という数になるので 秘密の行動をするようになります。
お礼
遅くなりました、すいません! と言うことはクエリに組合せパターンを一つずつ記述した方が良いと言うことですね? 入力されている条件だけを複数条件検索かけたいので色々調べていますが、難しそうです・・・ 最終的にはそれしかないと思っています。 返答ありがとうございました、ほかに良い方法がありましたら又アドバイスお願いいたします。
- gootara555
- ベストアンサー率62% (5/8)
最初と最後のifを両方満たすので、最後(顧客名)の条件が使われています。 手前のifで条件を満たしていれば、条件(filter)をANDでつなげればOKかと思います。 もちろん、初めて条件を満たす場合はANDをつけない。 "顧客コード like '" & txt顧客コード.Value & "'" AND "顧客区分 like '" & cmb顧客区分.Value & "'" AND "顧客名カナ like '*" & txt顧客名.Value & "*'"
お礼
返答ありがとうございます。 教えて頂いたコードの”AND”の記述時に構文エラーしてしまいます、 色々変えてやってみたのですが、”AND”がうまく使えません、 ど素人ですいません・・・ 返答お願いいたします。
お礼
遅くなりましてすいません! 返答ありがとうございます。 複数条件で検索できました、これで入力されている条件だけを加えるように するのは可能ですか? 注文が多くて申し訳ありません m(_ _)m 返答よろしくお願いいたします。