2012-07-03 59 views
3

我正在使用MS Access 2003,并且每天早上有7份不同的报告要发送,而我目前通过将每个报告打印到XPS文件来手动执行此操作。每个报告的默认打印机已被设置为XPS文件,我想这样的代码:使用VBA将MS Access报告打印到.xps文件

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

当我使用,但它打开一个另存为框,但.TIF是在“保存的唯一选择作为类型“字段。即使它不是,理想情况下我想将文件路径和名称作为参数发送,并让它处理整个过程(这样我可以使用循环通过按下按钮生成全部七个文件)。我希望有另一个命令可以用来做到这一点,或者可能是另一种方法。请注意,这不是我的机器,我没有管理权限来安装其他任何东西(如PDF生成器等)。

+0

打印数千每天报道这可能是相关的:http://support.microsoft.com/kb/938813/en-us – Fionnuala

回答

2

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

这可以很容易地自动化(有一个MDB与下载示例代码),你不必安装任何东西。
它带有两个DLL,您需要将它们放入与MDB/MDE相同的文件夹中,就是这样。无需安装/ DLL注册,只需将MDB/MDE分发给两个DLL即可。

我们正在使用这个工作从Access 2003中

+0

这看起来很棒,基督徒 - 谢谢!不幸的是,我正在一台客户机上工作,我无法获取文件,所以我还没有能够测试它。我正在获得批准将dll移动到该机器上,所以我会让你知道它是如何发生的。我很感激。 – rryanp

+0

如何将新版本的应用分发给机器?你不能只用**你的应用程序发布dll **吗?我就是这样做的。请记住,没有注册或类似的东西。将文件复制到您的应用程序所在的文件夹就足够了 –

+0

我正在连接到网络的笔记本电脑上构建数据库,但无法访问互联网或获取笔记本电脑的电子邮件附件。我能够获得批准的DLL,并且我将它们放在与MDB文件相同的文件夹中,但是在“ConvertReportToPDF”上出现“Sub或Function not defined”错误。我还没有开始排除故障,但是如果您有任何建议,请告诉我。谢谢! – rryanp