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

时间:2016-07-24 16:53:44

标签: ms-access search filter field

我今天如此坚持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

3 个答案:

答案 0 :(得分:1)

如果要在两个字段上使用通配符,则需要将条件分别应用于两个字段

这样的事情:

{{1}}

答案 1 :(得分:0)

您必须分别添加要过滤的每个字段:

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

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

答案 2 :(得分:0)

谢谢大家! dbmitch回答了完整的代码更正,只有我将AND设置为OR,所以它搜索任一字段。谢谢!

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