Me.Filter使用包含大量值的String

时间:2014-06-10 14:22:43

标签: filter access-vba

Private Sub cbtn_canceled_Click()
Me.Filter = "([status_code] Like 'BQ' OR [status_code] Like 'RG')"
Me.FilterOn = True
End Sub

工作正常,但我需要返回大约30个posibilties。我试过喂这样的strFilter,

Dim strFilter As String
strFilter = "BQ,RQ,WS,WE"
Me.Filter = "([status_code] Like strFilter)"

我尝试过很多没有运气的strFilter组合。 OR法规需要以某种方式进入。

想法?

1 个答案:

答案 0 :(得分:0)

like与通配符一起使用,例如' * '意思是任何字符序列。所以

Me.Filter = "([status_code] Like 'BQ*' OR [status_code] Like 'RG*')"

会找到任何以BQ或RG开头的项目。

如果您正在寻找完全匹配,那么您可以使用IN:

Me.Filter = "([status_code] IN('BQ','RG')"

所以

strFilter = "'BQ','RQ','WS','WE'"

你会用

Me.Filter = "([status_code] IN(" &  strFilter & ")"

你需要使用&符号(&)连接 strFilter,否则它会寻找单词' strFilter'。