Access 2007 VBA - 关闭后重命名报告?

时间:2011-09-26 19:45:49

标签: vba ms-access-2007

我有一个动态生成的报告,具体取决于我在主表单上按下的按钮,以便更改过滤器,使用的查询等。我DoCmd.Rename正在努力将报告重命名为当前(动态)报告标题。但是,在关闭报告时,我似乎无法将报告重命名为通用名称。

使用Report_Close()事件不起作用; Access告诉我报告仍处于打开状态,因此无法关闭。使用DoCmd.Close也不起作用;我得到运行时错误2501(关闭操作被取消)。

如何在报告关闭后重命名该报告?

1 个答案:

答案 0 :(得分:0)

您是说每次有人更改设置并打开报告时,您想将其保存为Access中的新报告吗?

我不推荐这个。
如果动态更改的东西只是过滤器和查询之类的东西,为什么不总是使用相同的报告并动态设置RecordSource


编辑:

好的,现在我明白了你真正想做的事情 您可以在运行时在代码中设置报表的Caption属性:

Private Sub Report_Open(Cancel As Integer)
    Me.Caption = "Incidents By Assignee"
End Sub

您还可以将标题的文字从主表单传递到报告:

打开报告时,请在OpenArgs参数中传递表单中的文字:

DoCmd.OpenReport "YourReport", acViewNormal, , , , "Incidents By Assignee"

...并且在报告中,如果它不为空,只需将Caption设置为OpenArgs

Private Sub Report_Open(Cancel As Integer)

    If Nz(Me.OpenArgs) > "" Then
        Me.Caption = Me.OpenArgs
    End If

End Sub