访问错误2501:OutputTo操作已取消。从系统帐户运行

问题描述 投票:4回答:1

我在使用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的任何想法?

pdf ms-access-2010
1个回答
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。

如果您还没有找到解决方案,您可能需要将此视为一种选择。

© www.soinside.com 2019 - 2024. All rights reserved.