运行时模式下的 Ms Access 过滤器报告

Ms Access filter reports in runtime mode

有谁知道如何在 Access 运行时模式下以正确的方式过滤报告? DoCmd 的常用代码不起作用。

这是我为报告所做的尝试:

Private Sub Befehl217_Click()
DoCmd.OpenReport "Tagesbericht", acViewPreview
End Sub

Private Sub Bezeichnungsfeld26_Click()
DoCmd.GoToControl "DateFilter"
DoCmd.RunCommand acCmdFilterMenu
End Sub

这没有用。访问抱怨 "FilterMenu isn't available".

我试图创建一个上下文菜单,但这只显示了剪切、复制和粘贴。

您可以使用过滤器 属性:

Me.Filter = "[YourField] = " & somevalue & ""
Me.FilterOn = True

或者,扩展您当前的方法:

DoCmd.OpenReport "Tagesbericht", acViewPreview, , "[YourField] = " & somevalue & ""

如果过滤日期,则必须为该日期传递格式正确的字符串表达式:

Dim FilterDate As Date

FilterDate = Date

DoCmd.OpenReport "Tagesbericht", acViewPreview, , "[DateFilter] = #" & Format(FilterDate, "yyyy\/mm\/dd") & "#"

您已确认您的报表包含名为 Bezeichnungsfeld26 的控件,并且当用户单击该控件时,您希望调出该控件的过滤器菜单。

当用户点击那个控件时,它有焦点,所以不需要GoToControl。如果您希望用户在 Bezeichnungsfeld26.

上进行过滤,您不想转到其他控件

禁用 GoToControl 行 ...

Private Sub Bezeichnungsfeld26_Click()
'DoCmd.GoToControl "DateFilter"
DoCmd.RunCommand acCmdFilterMenu
End Sub