0

我有一个搜索表单,我在访问中创建了一个代码来搜索关键字,然后创建一个包含结果的表:

Like"*"&[FORMS]![Search_Form]![KW_Text]&"*"

WHich 基本上告诉它读取我输入的关键字并提取任何匹配的结果。我希望能够输入多个单词,在包含所有数据的表中,我为每一位数据都有多个关键字,所有这些都用逗号分隔。因此,如果我输入 Manager,它会返回包含 Manager 一词的所有结果,我希望能够输入 Manager、Supervisor 并让它返回经理的所有结果和主管的所有结果。

4

2 回答 2

0

您可以使用SPLIT()VBA 中的函数将搜索字符串拆分为一个数组,然后For Each通过该数组构建一个搜索/过滤字符串,例如

(thing LIKE "*Manager*") OR (thing LIKE "*Supervisor*")
于 2013-04-05T15:51:25.020 回答
0

我使用此代码。它在您的刺痛之间创建一个或,由空格分隔。我把这个处理过的字符串放在一个查询定义中

Function CreateOr(MyCriteria As String, MyField As String) As String

Dim MyChar As String
Dim MyUniqueCriteria As String
Dim MyFinalCriteria As String
Dim I, j As Integer

j = 0
For I = 1 To Len(MyCriteria)
   MyChar = Mid(MyCriteria, I, 1)

   If MyChar = " " Then

        If j = 0 Then
             MyFinalCriteria = MyFinalCriteria & MyField & "=" & MyUniqueCriteria
        Else
             MyFinalCriteria = MyFinalCriteria & " or " & MyField & "=" & MyUniqueCriteria
        End If

        MyUniqueCriteria = ""
        j = j + 1
   Else
        MyUniqueCriteria = MyUniqueCriteria & MyChar
   End If

Next

CreateOr = MyFinalCriteria

End Function

希望对你有帮助

于 2013-04-12T14:41:14.667 回答