【问题标题】:Access VBA outputto pdf "output to" promptAccess VBA outputto pdf“输出到”提示
【发布时间】:2013-11-08 18:30:36
【问题描述】:

我在 Access 2007 SP3 中遇到了一个奇怪的问题。当我将报告导出为 pdf 时,我得到了我不想要的“输出到”提示,我的代码中是否有什么我做错了?

OverViewFile = DLookup("ExportPath", "dbo_Defaults") & "PC" & Format(Now(), "ddmmyy") & Format(Now(), "hhmm") & ".pdf"

DoCmd.OutputTo acOutputReport, "Rpt_ExportBPC", acFormatPDF, OverViewFile, False

如果我遗漏了什么,请告诉我。

【问题讨论】:

  • 你从Debug.Print OverViewFile得到什么?
  • 嗨,什么都没发生,它只是运行它而不做任何事情?
  • 您是否在“即时”窗口中检查了来自Debug.Print 的输出?你可以用 Ctrl+g 去那里
  • 感谢您的提醒!!它说 C:\program files\Folder\DataExport\PC2910131512.pdf 这是正确的
  • 你有C:\program files的写权限吗?我认为 Windows 不鼓励我们在那里写作。不过,我实际上已经很多年没有尝试过了。

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


【解决方案1】:

当使用我的报表对象的名称调整您的OutputTo 并为其提供 OverViewFile 的有效文件路径时,我没有从 Access 2007 SP3 中得到该提示。所以我怀疑你的问题是由于 OverViewFile;检查该字符串的值:

OverViewFile = DLookup("ExportPath", "dbo_Defaults") & "PC" & Format(Now(), "ddmmyy") & Format(Now(), "hhmm") & ".pdf"
Debug.Print OverViewFile
DoCmd.OutputTo acOutputReport, "Rpt_ExportBPC", acFormatPDF, OverViewFile, False

您可以在即时窗口中查看Debug.Print 的输出(Ctrl+g 将带您到那里)。

也许DLookup 正在返回 Null。然后,您将获得 OverViewFile 的有效 VBA 字符串,但它不是有效的 Windows 路径。

OverViewFile 还有另一个问题,它可能不会导致问题,但我会建议这样做,因为它更简单,而且我认为您实际上想要 hhnn文件名中的hhmmn代表分钟;m代表月)

OverViewFile = DLookup("ExportPath", "dbo_Defaults") & "PC" & _
    Format(Now(), "ddmmyyhhnn") & ".pdf"

【讨论】:

  • 只是好奇:OutputTo 是否提示文件是否已存在?如果是这样,那么 mm 与 nn 的混淆可能会导致这种情况。
  • 当目标文件存在时它没有提示我。相反,它默默地替换了旧文件。
  • 感谢 HansUp 的帮助,dlookup 肯定不为空。刚刚发现它适用于 .mdb 但不适用于 .mde?我还把 hhmm 改成了 hhnn。
  • 不过,我是否需要启用任何 VBA 引用才能使其正常工作?
  • DoCmd 是应用程序对象的一个​​方法。所以,如果这是一个参考问题,我想你会有更多的问题......不仅限于OutputTo
猜你喜欢
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2017-02-21
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多