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

MS Access: How can filter multiple fields in a filtered search (text box)

我今天卡在 VBA 上了,我不妨提出这个问题。 希望有人能帮助我,因为我迷路了。 具体是关于以下一行:

strFilter = "orderstatus Like '*" & _.

Orderstatus 是我正在搜索(过滤)的字段。 它工作正常,但我也想要其他一些字段!

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*'"

如果您希望一个或另一个包含过滤字符串,请使用 OR,如果您希望它们都包含过滤字符串,请使用 AND。

谢谢大家! dbmitch 用正确的完整代码回答,只是我将 AND 设置为 OR,以便它搜索任一字段。谢谢!

私人订阅 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

结束子