ACCESS 2010を使用しています。
一つのテキストボックスに対してキーワードを複数入力して、or条件で
かつ、テキストボックスを複数設置して、テキストボックス間はand条件で検索したいです。
例えば、テキスト型のフィールドが2フィールドあります。
「フィールドあ行」 には
あ
あい
いうえ
のようなデータがあって、
「フィールドか行」 には
か
かき
きくけ
のようなデータがあるときに、
「テキストボックスあ行」 に 「あ い」
「テキストボックスか行」 に 「か き く」
を入力して、検索ボタンを押すと、
「フィールドあ行」 が 「あ or い」 を含み、かつ
「フィールドか行」 が 「か or き or く」 を含むレコードを検索する
のようなコードをかきたいのですが、うまくいきません。教えていただけないでしょうか
No.2
- 回答日時:
「検索実行」ボタン(MySearch)を作成し、それぞれのテキストボックスの内容を元に、下記のような検索文字列を作成するプログラムを作ることが考えられます。
MyCriteria="(フィールド1 Like '*あ*' Or フィールド1 Like '*い*') And (フィールド2 Like '*か*' Or フィールド2 Like '*き*' Or フィールド2 Like '*く*')"
Me.Filter=MyCriteria
Me.FiterOn=True
具体的には下記のようになります。
MyResearchのクリック時プロシジャーに記載します。
全角スペースを半角に変換していますが、Replaceでも対応済かもしれません。
Private Sub MySearch_Click()
Dim MyCriteria As String, TempString As String
MyCriteria = ""
If Not IsNull(Me![Research1]) Then 'テキストボックス1の場合
TempString = Replace(Me![Research1], " ", " ") '全角スペースを半角に変換
MyCriteria = "(フィールド1 Like '*" & Replace(TempString, " ", "*' Or フィールド1 Like '*") & "*')"
End If
If Not IsNull(Me![Research2]) Then ’テキストボックス2の場合
If MyCriteria <> "" Then
MyCriteria = MyCriteria & " And " '前の検索文字列がある時は、Andを付加する。
End If
TempString = Replace(Me![Research2], " ", " ") '全角スペースを半角に変換
MyCriteria = "(フィールド2 Like '*" & Replace(Me![Research2], " ", "*' Or フィールド2 Like '*") & "*')"
End If
If MyCriteria <> "" Then
Me.Filter = MyCriteria
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End Sub
参考にして下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷での全角表示について...
-
Accessのハイパーリンクをクリ...
-
クエリで割り算する方法を教え...
-
実行時エラー '3464': 抽出条件...
-
エクセルにおける「フィールド...
-
varchar型の入力できる最大文字...
-
ACCESSのデータに自動で半角ス...
-
アクセスのクエリでパラメータ...
-
エクセルデータをワードで差し...
-
エクセルのピポットテーブルで...
-
datetime型のUpdate文
-
アクセスでのテキストデータ取...
-
ACCESSで条件によってフォーム...
-
ACCESSで複数の写真ファイルを...
-
Word差し込み印刷のハイフン(...
-
Acsess アクセス のクエリで...
-
フィールドの更新がない
-
ACCESS 重複データを1...
-
sqlserverにはグループ集計のfi...
-
アクセス:Yes/No型→チェックい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
エクセルデータをワードで差し...
-
ACCESS 重複データを1...
-
フィールドの更新がない
-
クエリで割り算する方法を教え...
-
ACCESSのデータに自動で半角ス...
-
Word差し込み印刷のハイフン(...
-
Accessのハイパーリンクをクリ...
-
Acsess アクセス のクエリで...
-
アクセスのクエリでパラメータ...
-
ACCESSでフィールド名の変更(...
-
ACCESSで条件によってフォーム...
-
実行時エラー '3464': 抽出条件...
-
列を移動させるvbaコードを教え...
-
クエリーで、全角混じりデータ...
-
レコードの内容にハイフンをつ...
-
sqlserverにはグループ集計のfi...
-
Accessフィールド分割
-
ACCESSでフィールドに-(ハイフ...
おすすめ情報