Microsoft Access 掲示板

「、」「。」区切りで複数のキーワードをor検索 and検索 / 4

7 コメント
views
4 フォロー
4
hatena 2020/09/15 (火) 15:14:57 修正 >> 2

いちおう、たたき台として、

Private Sub btnSubmit_Click()

    Dim strFilter As String
 
    '中略
  
    '条件指定3_複数キーワード入力
    '読点[、]区切りで部分一致でor条件 句点[。]区切りで部分一致でand条件)
    If Me.txtWord3 <> "" Then
       Dim strSubFilter As String
       strSubFilter = Me.txtWord3
       strSubFilter = "*" & Replace(strSubFilter, "。", "* And *") & "*"        
       strSubFilter = Replace(strSubFilter, "、", "* Or *")
       strSubFilter = "(" & BuildCriteria("職名", dbText, strSubFilter) & ")"

       strFilter = strFilter & " AND " & strSubFilter
    End If

    '後略

End Sub

読点(、)、句点(。)混在は可能ですが、And演算子がOr演算子より演算順位が高いので、
ユーザーがそれを理解していないと期待の結果にならない場合があるので注意が必要。

上記の strSubFilter には、下記のような条件式が格納されます。

Me.txtWord3 => strSubFilter

チーフ。リーダー => (職名 Like "*チーフ*" And 職名 Like "*リーダー*")

チーフ、リーダー => (職名 Like "*チーフ*" Or 職名 Like "*リーダー*")

チーフ。リーダー、ボス => (職名 Like "*チーフ*" And 職名 Like "*リーダー*" Or 職名 Like "*ボス*")

通報 ...
  • 5

    hatena 様
    迅速な回答いただき誠にありがとうございます。

    句点、部分一致の文中の間違いご指摘ありがとうございます。

    >あと、読点 と 句点 が混在する可能性はありますか。
    >「チーフ。リーダー、ボス」とか。
    読点 と 句点 が混在する可能性はありません。
    どちらかでしか検索出来ないようにしたいとおもっています。

    たたき台を使用させて頂きましたところ、
    思っていたように検索が出来ました。
    本当にありがとうございます。
    教えて頂いたこと、勉強させて頂きます。