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

时间:2016-06-01 10:45:15

标签: ms-access access-vba ms-access-2013

有谁知道如何在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不可用"

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

2 个答案:

答案 0 :(得分:1)

您确认您的报告包含名为Bezeichnungsfeld26的控件,当用户点击该控件时,您需要调出该控件的过滤器菜单。

当用户点击该控件时,它具有焦点,因此不需要GoToControl。如果您希望用户在Bezeichnungsfeld26上进行过滤,则您不想使用其他控件。

停用GoToControl行...

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

答案 1 :(得分:0)

您可以使用过滤器属性:

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") & "#"