我遇到了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服务更改为“作为”用户而不是系统帐户,它也可以正常运行。
不幸的是,我无法将该服务作为用户帐户运行(没有经过大量测试)。
有关为什么系统帐户无法输出PDF格式的任何想法?
答案 0 :(得分:0)
我知道这是一个旧线程 - 但我希望在其他用户遇到类似问题的情况下提供此问题的潜在解决方案。
我试图做一些非常相似的事情,并发现同样的事情也发生在我身上。我的解决方案是整合Stephen Lebans' ReportToPDF(在此处找到:http://www.lebans.com/reporttopdf.htm)进入我的项目,并从
更改我的来电 DoCmd.OutputTo acReport, strReportName, acFormatPDF, strFilePath
到
modReportToPDF.ConvertReportToPDF strReportName, , strFilePath, , False
在调整C:\ Windows \ Temp文件夹的权限后,我的服务现在可以从本地系统帐户打印PDF。
如果您还没有找到解决方案,可以考虑将其作为一种选择。