访问VBA - 应用过滤器 - 多个OR条件

时间:2016-06-21 09:18:29

标签: vba ms-access access-vba

我将我的工作宏转换为Microsoft Access 2010中的VBA脚本(也正常工作):

   DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", ""

我使用相同的格式(我相信)尝试扩展此过滤器以使用多个字段,但它不起作用:

   DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*"" Or [Surname] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", ""

这就是我的意思不起作用:如果我的数据是: [forename] [姓]   亚历克斯鲍勃   克里斯·迪恩

然后键入,例如“alex”或“a”,根本不会过滤结果。另一方面,只有一个过滤器的代码会缩小数据范围。

1 个答案:

答案 0 :(得分:3)

您可以尝试使用其他方法来应用过滤器:

me.filter = "[forename] like '*" & Me.StaffTotalSearchText & "*'" & _
" OR [surname] like '*" & Me.StaffTotalSearchText & "*'"
me.filter =true
  

修改

正如@Andre评论的那样,我使用单引号(撇号)来封装我的字符串。您的vba应该使用以下更改:

   DoCmd.ApplyFilter "", "[Forename] Like '*" & _
   [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'" & _
   " Or [Surname] Like '*" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'"