从单个表单动态打开和过滤不同的报告

时间:2013-11-20 13:42:02

标签: vba ms-access ms-access-2007 access-vba

我正在尝试根据用户从表单中的组合框中选择的报表来打开和过滤报表。为了简化示例,以下是我正在处理的内容:

首先我要打开报告:

Dim strReportName As String
strReportName = "General Information"
DoCmd.OpenReport strReportName, acViewPreview

这很好用,当我尝试应用过滤器时问题就出现了。

With Reports!strReportName
    .Filter = strFilter
    .FilterOn = True
End With

我找不到问题的方法是,在这种语法中似乎不可能使用变量reportname。不用说,VBA抛出的错误如下:

Run-time error '2451':

The report name 'strReportName' you entered is misspelled or refers to a report that 
isn't open or doesn't exist.

我的问题是:有没有办法改变这种说法,让我过滤掉当前打开的报告,而无需将报告名称硬编码到VBA中?

1 个答案:

答案 0 :(得分:0)

strReportName 是包含报告名称的变量时,您发现此操作失败..

With Reports!strReportName

请改用它......

With Reports(strReportName)