【发布时间】:2018-02-05 18:21:59
【问题描述】:
有一个包含一堆表格的数据库。其中之一是我的“起始页”,其中有几个按钮,每个按钮都打开一个表单。我有可能几年的条目,因此,为了使其更实用,我在起始页上有一个组合框,其中包含所有年份的值,我在所有按钮的代码中使用它们来过滤打开时的表单。代码如下:
Private Sub Edit_Sale_Contract_Click()
'Opens the selected form'
DoCmd.OpenForm "new Sale Form", , , , acFormEdit
'Applies the filter'
If Forms![Main Menu].Combo10 = "All" Then
Forms![new Sale Form].FilterOn = False
Else
Forms![new Sale Form].Filter = "[crop]=" & Chr(34) & Forms![Main Menu].Combo10 & Chr(34)
Forms![new Sale Form].FilterOn = True
End If
End Sub
我还有几份报告。我想要做的是制作一个带有 Tab 控件的表单,每个 Tab 都有一个报告。目前,我的报告的 On Open 事件中有类似的代码:
Private Sub Report_Open(Cancel As Integer)
If Forms![Main Menu].Combo10 = "All" Then
Me.FilterOn = False
Else
Me.Filter = "[crop]=" & Chr(34) & Forms![Main Menu].Combo10 & Chr(34)
Me.FilterOn = True
End If
End Sub
到目前为止,这工作正常。我用一个按钮(没有过滤器代码)打开表单,并且报告在选项卡中正确打开,已经过滤。
问题:当我尝试在“名称”上应用辅助过滤器时,例如使用 RightClick->equals“名称”它会刷新报告并且不应用它。 我尝试将报告中的事件从 On Open 更改为 On Load。然后第二个过滤器正确应用,但是当我单击任何地方时,我得到运行时错误'5':无效的过程调用或参数。调试指示行
MeFilterOn = True
关闭调试器,“Name”上的第二个过滤器被取消,“Crop”上的第一个过滤器仍然打开。
感谢任何建议。请注意,我自己正在学习 Access 和 VBA,而且我非常陌生。提前致谢
【问题讨论】:
标签: ms-access vba ms-access-2016