【发布时间】:2011-09-27 05:02:17
【问题描述】:
我有一个根据我的主窗体上按下的按钮动态生成的报告,以便更改过滤器、使用的查询等。我有 DoCmd.Rename 正在将报告重命名为当前(动态)报告标题。但是,我似乎无法在关闭报告时将报告重命名为通用名称。
使用Report_Close() 事件不起作用; Access 告诉我报告仍处于打开状态,因此无法关闭。使用DoCmd.Close 也不起作用;我收到运行时错误 2501(关闭操作已取消)。
此报告关闭后如何重命名?
【问题讨论】:
-
为什么您认为需要重命名报告?为什么你认为需要保存动态传递的过滤等?
-
好吧,我正在动态设置记录集等等。问题是当报告被保存时(为了方便起见,有一个命令按钮可以在不先查看报告的情况下保存为 PDF,因为每天会生成 16 种不同的报告),另存为...对话框默认文件名改为通用报告名称(例如 Report.pdf 而不是“Incidents By Assignee.pdf”)。如果我可以在打开时重命名实际的 Report 对象,并在关闭时将其重命名为泛型,这将允许更快的保存到 PDF 功能。
-
那是重命名源报告的可怕原因。相反,您应该弄清楚如何更改用于 PDF 的文件名。这完全取决于您如何完成“另存为 PDF”。
-
DoCmd.OutputTo acFormatPDF。指定 PDF 名称的唯一方法是同时指定完整路径,这在多个用户使用此应用程序时不起作用。
-
如果您需要控制文件名,那么您需要使用不同的方法来输出 PDF,例如 PDFCreator。 DoCmd.OutputTo 不是一种非常可靠的方式来做这种事情,因为它是如此有限(正如你所发现的那样)。
标签: vba ms-access-2007