在多个字段上访问VBA关键字搜索功能

时间:2018-08-06 21:54:39

标签: vba ms-access search filter access-vba

我目前有一个简单的Access数据库,其中包含供用户根据查询表填写的表格。

我的目标是使用一个搜索框,该搜索框可以多次根据关键字过滤结果。我现有的代码非常适合在1个字段上进行一次搜索。我希望能够通过搜索另一个字段来深入查询第一个搜索。从组合框和搜索关键字中选择字段后,将显示我的结果。一旦我从同一框中选择另一个字段并进行搜索,结果将不包含我的第一个过滤器。

在表单上,​​我已经有了一个组合框,其中包含所有可供选择的字段的列表。然后,旁边是一个文本框,供用户搜索所选的字段列表。我有正确的VBA代码可以搜索单个字段,但我想从那里向下钻取。基本上,我希望能够在选定字段上搜索关键字,然后能够通过再次使用相同的搜索框来进一步过滤那些结果。

示例:在表单上,​​从下拉列表中选择“借款人”,然后在搜索框中键入“ Smith”,然后单击搜索按钮。然后,我想从同一下拉列表中选择另一个字段,例如“问题类别”,然后键入“后期付款”,然后单击搜索按钮。因此,给我所有包含借款人史密斯的记录,这些记录中存在逾期付款的问题。

我已经花了几天时间才终于崩溃来到这里。我需要知道需要添加哪些代码才能实现我的目标,即无需重置过滤器即可进行多次搜索。希望您能提供帮助。这是我的代码(Text35是文本框,searchlist是字段名称的组合框列表):

Private Sub Search_Click()
Dim strSearchValue As String
strSearchValue = Me.Text35.Value

Select Case Me.searchlist.Value

        Case "Date"
            Me.Filter = "[Date] = #" & strSearchValue & "# "

        Case "Account number"
            Me.Filter = "[Account number] = #' & strSearchValue & '# "

        Case "Borrower"
            Me.Filter = "[Borrower] LIKE '*" & (Replace(strSearchValue, "'", "''")) & "*'"

        Case "Issue Category"
            Me.Filter = "[Issue Category] LIKE '*" & (Replace(strSearchValue, "'", "''")) & "*'"


End Select

Me.FilterOn = True

End Sub

1 个答案:

答案 0 :(得分:-1)

我认为您可以使用OR关键字代替&