我在使用过滤器打开表单时遇到问题。我试图运行的代码是:
DoCmd.OpenForm "MyForm", , "[ID] = " & Me.MyListBox.Column(0), , acFormEdit, acDialog
当我运行此行时,它会打开表单,但不会应用过滤器。
FilterOnLoad属性设置为True,我已验证在On Load事件中它是真的。
在Form_Load事件中,Me.FilterOn = False,Me.Filter =“”。
滤镜怎么了?我究竟做错了什么?我已经尝试通过VBA将Me.FilterOn属性设置为True,然后保存表单,但是当我再次打开表单时,它会重置为False。
如果我将过滤器放入使用VBA,然后将Me.FilterOn属性设置为True,则表单会正确过滤。我已经验证了“Me.MyListBox.Column(0)”
的正确值答案 0 :(得分:2)
以下是 DoCmd.OpenForm方法帮助主题对 FilterName 参数的说法:
一个字符串表达式,它是当前查询的有效名称 数据库中。
但是你没有给它一个查询的名字。我认为你实际上想要 WhereCondition 参数:
DoCmd.OpenForm FormName:="MyForm", _
WhereCondition:="[ID] = " & Me.MyListBox.Column(0), _
DataMode:=acFormEdit, _
WindowMode:=acDialog