使用 VBA 将 MS Access 报告打印到 .xps 文件

Posted

技术标签:

【中文标题】使用 VBA 将 MS Access 报告打印到 .xps 文件【英文标题】:Print MS Access report to .xps file using VBA 【发布时间】:2012-07-03 12:59:28 【问题描述】:

我正在使用 MS Access 2003 并且每天早上必须分发七份不同的报告,我目前通过将每个报告打印到 XPS 文件来手动执行此操作。每个报告的默认打印机已设置为 XPS 文件,我尝试了以下代码:

DoCmd.OpenReport ("rptDaily_1of7")
DoCmd.PrintOut acPrintAll,1,,acHigh,1

当我使用它时,它会打开一个另存为框,但 .tif 是“另存为类型”字段中的唯一选项。即使不是这样,理想情况下我想将文件路径和名称作为参数发送并让它处理整个过程(这样我就可以使用循环来生成所有七个文件,只需按一下按钮)。我希望有另一个命令可以用来执行此操作,或者可能是另一种方法。请注意,这不是我的机器,我没有管理员权限来安装其他任何东西(如 pdf 生成器等)。

【问题讨论】:

这可能是相关的:support.microsoft.com/kb/938813/en-us 【参考方案1】:

您可以使用ReportToPDF by Stephen Lebans 将报告创建为 PDF 文件。

这很容易实现自动化(下载中有一个带有示例代码的 MDB),您无需安装任何东西。 它带有两个 DLL,您需要将它们放入与 MDB/MDE 相同的文件夹中,仅此而已。无需安装/DLL 注册,只需将这两个 DLL 与您的 MDB/MDE 一起分发。

我们在工作中使用它每天从 Access 2003 打印数千份报告。

【讨论】:

这看起来很棒,克里斯蒂安——谢谢!不幸的是,我正在使用无法获取文件的客户机器,因此我还无法对其进行测试。我正在努力获得将 dll 移到那台机器上的批准,所以我会告诉你进展如何。我很感激。 如何将新版本的应用分发到机器上?您不能您的应用程序一起分发 dll 吗?我就是这样做的。请记住,没有注册或类似的东西。将文件复制到与您的应用相同的文件夹就足够了 我正在连接到网络的笔记本电脑上构建数据库,但我无法访问互联网或获取笔记本电脑的电子邮件附件。虽然我能够获得批准的 DLL,并且我将它们放在与 MDB 文件相同的文件夹中,但是在“ConvertReportToPDF”上出现“未定义子或函数”错误。我还没有开始对其进行故障排除,但是如果您有任何建议,请告诉我。谢谢! 我了解到,除了移动 DLL 文件之外,您还必须将模块“modReportToPDF”从示例数据库复制到您的数据库(它实际上包含“ConvertReportToPDF”功能)。一旦完成,它就像一个魅力。再次感谢。

以上是关于使用 VBA 将 MS Access 报告打印到 .xps 文件的主要内容,如果未能解决你的问题,请参考以下文章

MS Access VBA 并使用 unicode UTF-8 / UTF-16 报告问题

使用 VB.NET 打印 MS Access 报告

通过 VBA 自动使用查询从 Ms Access 2007 生成报告

MS ACCESS:通过 VBA 更改默认打印机

打印前在 Microsoft Access 报告中运行 VBA

MS Access 强制报告页脚到页面底部