- ベストアンサー
アクセスのOR検索
アクセスの初心者です。テキストボックスに入力した語句をテーブルより検索するコードをサンプルコードからまねて作りました。 Me.Filter = "[件名]Like'" & "*" & Me![テキスト28] & "*'" Me.FilterOn = True さらにテキストボックスを2つほど増やし、3つからOR検索出来るようにしたいんですが、、、(コードの意味もよくわかっていません。) コードを書いていただくとありがたいのですが。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
2つめ、3つめのテキストボックスが空白の場合だと、(検索条件が1つか2つのテキストの場合だと)ShadowMoonさんの回答だとうまく行かないので(全てのデータが該当してしまう)、そのような条件でも使えるようにするには、 Me.Filter = "[件名]Like'" & "*" & Me![テキスト28] & "*'" _ & iif([テキスト29]<>""," OR [件名]Like'" & "*" & Me![テキスト29] & "*'","") _ & iif([テキスト30]<>""," OR [件名]Like'" & "*" & Me![テキスト30] & "*'","") ただし、テキスト28には必ず検索文字が入っていると仮定します。
その他の回答 (1)
- ShadowMoon
- ベストアンサー率59% (73/122)
残りのテキストボックスをテキスト29、テキスト30として Me.Filter = "[件名]Like'" & "*" & Me![テキスト28] & "*'" Me.FilterOn = True を Me.Filter = "[件名]Like'" & "*" & Me![テキスト28] & "*' OR" _ & "[件名]Like'" & "*" & Me![テキスト29] & "*' OR" _ & "[件名]Like'" & "*" & Me![テキスト30] & "*'" Me.FilterOn = True ではどうでしょうか? コードの簡単な意味は、検索対象である件名の中の一連の文字に3つのテキストボックスの一連の文字が含まれているものを抽出するフィルターのコードです。 スペースに続けて_は、複数の行を続けてコードを見やすくする方法です。 ご参考になれば幸いです。m(__)m
お礼
コードの説明まで親切にありがとうございます。 すこしずつ勉強していきます。 ありがとうございました
お礼
ありがとうございます。早速手直ししてみます。