我有一个动态生成的报告,具体取决于我在主表单上按下的按钮,以便更改过滤器,使用的查询等。我DoCmd.Rename
正在努力将报告重命名为当前(动态)报告标题。但是,在关闭报告时,我似乎无法将报告重命名为通用名称。
使用Report_Close()
事件不起作用; Access告诉我报告仍处于打开状态,因此无法关闭。使用DoCmd.Close
也不起作用;我得到运行时错误2501(关闭操作被取消)。
如何在报告关闭后重命名该报告?
答案 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