使用过滤器打开访问表单 VBA
Open Access Form with Filter VBA
我在使用过滤器打开表单时遇到问题。我尝试 运行 的代码是这样的:
DoCmd.OpenForm "MyForm", , "[ID] = " & Me.MyListBox.Column(0), , acFormEdit, acDialog
当我 运行 这一行时,它会打开表单,但不会应用过滤器。
FilterOnLoad属性设置为True,我在On Load事件中验证过它是true。
在 Form_Load 事件中,Me.FilterOn = False 并且 Me.Filter = "".
过滤器怎么了?我究竟做错了什么?我尝试通过 VBA 将 Me.FilterOn 属性 设置为 True,然后保存表格,但是当我再次打开表格时,它被重置为 False。
如果我使用 VBA 设置过滤器,然后将 Me.FilterOn 属性 设置为 True,则表单会正确过滤。我已验证 "Me.MyListBox.Column(0)"
的值是否正确
DoCmd.OpenForm 方法 帮助主题对 FilterName 参数的说明如下:
A string expression that's the valid name of a query in the current
database.
但是您没有给它查询的名称。我认为您实际上想要 WhereCondition 参数:
DoCmd.OpenForm FormName:="MyForm", _
WhereCondition:="[ID] = " & Me.MyListBox.Column(0), _
DataMode:=acFormEdit, _
WindowMode:=acDialog
我在使用过滤器打开表单时遇到问题。我尝试 运行 的代码是这样的:
DoCmd.OpenForm "MyForm", , "[ID] = " & Me.MyListBox.Column(0), , acFormEdit, acDialog
当我 运行 这一行时,它会打开表单,但不会应用过滤器。
FilterOnLoad属性设置为True,我在On Load事件中验证过它是true。
在 Form_Load 事件中,Me.FilterOn = False 并且 Me.Filter = "".
过滤器怎么了?我究竟做错了什么?我尝试通过 VBA 将 Me.FilterOn 属性 设置为 True,然后保存表格,但是当我再次打开表格时,它被重置为 False。
如果我使用 VBA 设置过滤器,然后将 Me.FilterOn 属性 设置为 True,则表单会正确过滤。我已验证 "Me.MyListBox.Column(0)"
的值是否正确DoCmd.OpenForm 方法 帮助主题对 FilterName 参数的说明如下:
A string expression that's the valid name of a query in the current database.
但是您没有给它查询的名称。我认为您实际上想要 WhereCondition 参数:
DoCmd.OpenForm FormName:="MyForm", _
WhereCondition:="[ID] = " & Me.MyListBox.Column(0), _
DataMode:=acFormEdit, _
WindowMode:=acDialog