我将我的工作宏转换为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”,根本不会过滤结果。另一方面,只有一个过滤器的代码会缩小数据范围。
答案 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] & "*'"