Ms access 访问VBA-应用筛选器-多个或多个条件
我在Microsoft Access 2010中将我的工作宏转换为VBA脚本(也在工作):Ms access 访问VBA-应用筛选器-多个或多个条件,ms-access,vba,Ms Access,Vba,我在Microsoft Access 2010中将我的工作宏转换为VBA脚本(也在工作): DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", "" 我使用了相同的格式(我相信),尝试扩展此过滤器以处理多个字段,尽管它不起作用: DoCmd.ApplyFilter "", "[Forename] Like "
DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", ""
我使用了相同的格式(我相信),尝试扩展此过滤器以处理多个字段,尽管它不起作用:
DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*"" Or [Surname] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", ""
这就是我所说的无效的意思:如果我的数据是:
[姓名][姓氏]
亚历克斯·博布斯
克里斯·迪恩
然后键入,例如“alex”或“a”,根本不会过滤结果。另一方面,只有一个筛选器的代码确实缩小了数据范围。您可以尝试另一种应用筛选器的方法:
me.filter=“[forename]如“*”&me.StaffTotalSearchText&“*”&_
“或类似于“*”&Me.StaffTotalSearchText&“*”的[姓氏]
me.filter=true
编辑
正如@Andre所评论的,我使用了单引号(撇号)来封装我的字符串。您的vba应与以下更改一起使用:
DoCmd.ApplyFilter "", "[Forename] Like '*" & _
[Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'" & _
" Or [Surname] Like '*" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'"
您可以尝试另一种应用过滤器的方法:
me.filter=“[forename]如“*”&me.StaffTotalSearchText&“*”&_
“或类似于“*”&Me.StaffTotalSearchText&“*”的[姓氏]
me.filter=true
编辑
正如@Andre所评论的,我使用了单引号(撇号)来封装我的字符串。您的vba应与以下更改一起使用:
DoCmd.ApplyFilter "", "[Forename] Like '*" & _
[Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'" & _
" Or [Surname] Like '*" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'"
是否有任何错误消息?你说的“不工作”是什么意思?没有错误信息。这就是我所说的“无效”的意思:如果我的数据是:姓名:alex,chris |姓氏:bobs,dean,那么键入“alex”或“a”,根本不会过滤结果。另一方面,只有一个过滤器的代码确实缩小了数据范围。是否有任何错误消息?你说的“不工作”是什么意思?没有错误信息。这就是我所说的“无效”的意思:如果我的数据是:姓名:alex,chris |姓氏:bobs,dean,那么键入“alex”或“a”,根本不会过滤结果。另一方面,只有一个筛选器的代码确实缩小了数据范围。关键是使用单引号作为标准分隔符,此筛选器字符串还应与
DoCmd.ApplyFilter
一起使用@建议的第二种方法很有魅力。非常感谢,安德烈和利亚姆!关键是使用单引号作为标准分隔符,此筛选字符串还应与DoCmd.ApplyFilter
一起使用@建议的第二种方法很有魅力。非常感谢,安德烈和利亚姆!