Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access:如何在过滤搜索中过滤多个字段(文本框)_Ms Access_Search_Filter_Field - Fatal编程技术网

Ms access MS Access:如何在过滤搜索中过滤多个字段(文本框)

Ms access MS Access:如何在过滤搜索中过滤多个字段(文本框),ms-access,search,filter,field,Ms Access,Search,Filter,Field,我今天太沉迷于VBA了,我不妨提出这个问题。 希望有人能帮助我,因为我迷路了。 具体来说是关于以下几行: strFilter = "orderstatus Like '*" & _. Orderstatus是im搜索的字段(向下筛选)。 它的作品很好,但我想在那里的一些其他领域以及 strFilter = "orderstatus And ordersales Like '*" & _. 我试过了????我尝试了很多东西,但都不管用 以下是完整的代码: Private Sub

我今天太沉迷于VBA了,我不妨提出这个问题。 希望有人能帮助我,因为我迷路了。 具体来说是关于以下几行:

strFilter = "orderstatus Like '*" & _.
Orderstatus是im搜索的字段(向下筛选)。 它的作品很好,但我想在那里的一些其他领域以及

strFilter = "orderstatus And ordersales Like '*" & _.
我试过了????我尝试了很多东西,但都不管用

以下是完整的代码:

Private Sub txtFilter_AfterUpdate() Dim strFilter As String
If Len(Trim(Me.txtfilter.Value & vbNullString)) > 0 Then
strFilter = "orderstatus Like '*" & _
Replace(Me.txtfilter.Value, "'", "''") & _
"*'"
Me.Filter = strFilter
Me.FilterOn = True
Else
Me.FilterOn = False
End If
End Sub

请帮忙!!!!我已经被困了4天了:S

如果你想在两个字段上都使用通配符,你需要在两个字段上分别应用标准

类似这样的内容:

Private Sub txtFilter_AfterUpdate()  

     Dim strFilter As String
     Dim strWildcard As String
     If Len(Trim(Me.txtfilter.Value & vbNullString)) > 0 Then
        strWildcard = " Like '*" & Replace(Me.txtfilter.Value, "'", "''") & "*'"
        strFilter = "orderstatus" & strWildcard  & " And ordersales"  & strWildcard 
        Me.Filter = strFilter
        Me.FilterOn = True
     Else
        Me.FilterOn = False
     End If

End Sub

必须分别添加要筛选的每个字段:

strFilter = "orderstatus LIKE '*xxx*' OR ordersales LIKE '*xxx*'"

如果希望其中一个包含筛选字符串,请使用或,如果希望两个都包含筛选字符串,请使用和。

谢谢大家!Dbitch回答了一个完整的正确代码,只是我将AND设置为左右,它搜索任意一个字段。谢谢大家!

私有子txtFilter_AfterUpdate()


末端接头

您的strFilter套件在哪里?问题是什么-语法错误或筛选器不工作?看起来您没有使用orderstatus字段,您的示例显示您需要ordersales字段。但我们不确定您要过滤的内容以及字段类型。这两个字段都要通配符吗?很好。它把结果还给了我。问题是我在表单中搜索一个字段。(如1列)在本例中,我在orderstatus字段中搜索,但我想添加另一个字段:S为什么Access总是充满问题和复杂因素?Access没有问题。它就像任何新的应用程序一样——你需要花时间学习语言——或者在本例中,学习两种语言VBA和SQL。您将从何处获取第二个字段的筛选值?听起来你需要多个过滤文本字段和一个单独的“应用过滤”按钮来收集和连接你的过滤字段。我知道。我现在很忙,总有一天会到的。谢谢你的回复!。无论如何,我想从同一个字段中得到的值。哪个是搜索字段(文本框)对吗?我在txtFilter中键入要搜索的值,然后在“orderstatus”和“ordersales”字段中查找,并返回包含我要查找的值的任何内容。所以,是的,它应该适用于两个领域谢谢你们!我试试看:)非常感谢你们!我试试看:)我试过了。谢谢你的迅速回复。但它似乎不起作用。现在,当我在字段中输入某个内容时,按enter键,它实际上什么都不做。在vba页面的顶部,我还有一个选项:Compare Database Option Explicit,我想它不会有任何影响?txtFilter中的值是多少?是否应将其应用于这两个字段?
 Dim strFilter As String
 Dim strWildcard As String
 If Len(Trim(Me.txtfilter.Value & vbNullString)) > 0 Then
    strWildcard = " Like '*" & Replace(Me.txtfilter.Value, "'", "''") & "*'"
    strFilter = "orderstatus" & strWildcard  & " And ordersales"  & strWildcard 
    Me.Filter = strFilter
    Me.FilterOn = True
 Else
    Me.FilterOn = False
 End If