使用过滤器VBA打开Access Form

时间:2015-03-17 18:36:30

标签: vba ms-access access-vba

我在使用过滤器打开表单时遇到问题。我试图运行的代码是:

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)”

的正确值

1 个答案:

答案 0 :(得分:2)

以下是 DoCmd.OpenForm方法帮助主题对 FilterName 参数的说法:

  

一个字符串表达式,它是当前查询的有效名称   数据库中。

但是你没有给它一个查询的名字。我认为你实际上想要 WhereCondition 参数:

DoCmd.OpenForm FormName:="MyForm", _
    WhereCondition:="[ID] = " & Me.MyListBox.Column(0), _
    DataMode:=acFormEdit, _
    WindowMode:=acDialog