我在使用 Microsoft Access 2010 时遇到问题。我有一个报告模块,可以将报告打印到打印机或文件。报告可以是用户请求的,也可以是自动打印的。用户请求从登录用户的桌面运行报告。自动打印是由我的 Windows 服务启动的。
我们过去常常将它们打印为 .RTF,并且效果很好。我们想要修改我们的访问报告数据库以打印为 .PDF。这就是乐趣的开始。如果我们将访问数据库作为用户应用程序启动,则报告可以正常打印。如果我们从 Windows 服务启动访问数据库,我们会收到错误 2501“OutputTo 操作已取消”。
该应用程序在 Windows 2008 Server R2 上运行。
DoCmd.OpenReport "Summary", acViewPreview
DoCmd.OutputTo acOutputReport, "Summary", acFormatPDF, DataBasePath & "Summary.pdf"
DoCmd.Close acReport, "Summary", acSaveNo
如果我将 acFormatPDF 更改为 acFormatRTF (并将文件名更改为summary.rtf),则效果很好。如果我以登录用户身份运行此代码,它可以正常工作并生成 PDF。如果我将 Windows 服务更改为“以用户身份运行”而不是系统帐户,它也能正常工作。
不幸的是,我无法作为用户帐户运行该服务(未经大量测试)。
关于为什么系统帐户无法OutputTo PDF 有什么想法吗?
我知道这是一个旧线程 - 但我想为这个问题提供一个潜在的解决方案,以防其他用户遇到类似的问题。
我试图做一些非常相似的事情,结果发现同样的事情也发生在我身上。我的解决方案是集成 Stephen Lebans 的 ReportToPDF(可在此处找到:http://www.lebans.com/reporttopdf.htm http://www.lebans.com/reporttopdf.htm)进入我的项目,并更改我的呼叫
DoCmd.OutputTo acReport, strReportName, acFormatPDF, strFilePath
to
modReportToPDF.ConvertReportToPDF strReportName, , strFilePath, , False
调整 C:\Windows\Temp 文件夹的权限后,我的服务现在可以从本地系统帐户打印 PDF。
如果您尚未找到解决方案,您可能需要考虑将此作为一种选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)