Sql Access 2013通过按钮将多个筛选器应用于表单

Sql Access 2013通过按钮将多个筛选器应用于表单,sql,forms,ms-access,filter,ms-access-2013,Sql,Forms,Ms Access,Filter,Ms Access 2013,我试图在Access中创建一个可搜索的表单。设置将是5-6个文本框、一对开关和一个按钮。在文本框中输入所有信息,单击按钮,仅显示符合所有条件的记录 我在互联网上找到了一些代码,这些代码似乎给了我所需要的一切: 但是当我把它放进去的时候,它什么也没有返回。到目前为止,我只放了一个文本框,以确保在我浪费时间添加一堆AND之前,它是正确的。以下是我目前的所有代码: Private Sub SearchAll_Click() If Not IsNull(Me.txtCityCounty) Then

我试图在Access中创建一个可搜索的表单。设置将是5-6个文本框、一对开关和一个按钮。在文本框中输入所有信息,单击按钮,仅显示符合所有条件的记录

我在互联网上找到了一些代码,这些代码似乎给了我所需要的一切:

但是当我把它放进去的时候,它什么也没有返回。到目前为止,我只放了一个文本框,以确保在我浪费时间添加一堆AND之前,它是正确的。以下是我目前的所有代码:

Private Sub SearchAll_Click()

If Not IsNull(Me.txtCityCounty) Then
    strWhere = strWhere & "([City/County] Like "" * " & Me.txtCityCounty & " * "")"

    Me.Filter = strWhere
    Me.FilterOn = True

    End If

End Sub
如果有帮助,“SearchAll”是我的按钮,“txtCityCounty”是文本框,“City/County”是字段名

当我尝试在我的文本框中输入文本并单击我的按钮时,它不会返回任何内容,下面所有嵌入的文本框都会消失,就好像它在过滤没有出现的内容一样(我可以向您保证,情况并非如此。我是在“Salt”中输入的)


我错过了什么?有没有更简单的方法来完成这个项目?

不用所有额外的引号,试试这个

“([市/县]如“*”&Me.txtCityCounty&“*”)”

如果需要,您甚至可以通过使用以下命令来摆脱if语句:


strwhere=nz(“([City/County]如“*”&Me.txtCityCounty&“*”),”)

在不使用所有额外引号的情况下尝试此操作

“([市/县]如“*”&Me.txtCityCounty&“*”)”

如果需要,您甚至可以通过使用以下命令来摆脱if语句:


strwhere=nz(“([City/County]如“*”&Me.txtCityCounty&“*”),”)

考虑有条件地建立一个筛选器字符串,并使用以下方法:


考虑有条件地构建筛选器字符串,并使用以下方法:


这是与我找到的代码对应的数据库:这是与我找到的代码对应的数据库:
Dim filterString As String

filterString = "1 = 1"                    

If Not IsNull(Me.txtCityCounty) Then
   filterString = filterString & "([City/County] Like '*" & Me.txtCityCounty & "*')"
End if
If Not IsNull(Me.txtAgePopulation) Then
   filterString = filterString & "([Age/Population] Like '*" & Me.txtAgePopulation & "*')"
End if

If Not IsNull(Me.txtServiceType) Then
   filterString = filterString & "([ServiceType] Like '*" & Me.txtServiceType & "*')"
End if

If Not IsNull(Me.txtInsurance) Then
   filterString = filterString & "([Insurance] Like '*" & Me.txtInsurance & "*')"
End if

If Not IsNull(Me.txtProviders) Then
   filterString = filterString & "([Providers] Like '*" & Me.txtProviders & "*')"
End if

DoCmd.ApplyFilter , filterString