是否可以在访问中同时将多个报告导出为PDF。如果是的话,有谁能告诉我怎么做? 我在网上搜索了很多,但找不到答案。 感谢您抽出时间回答我的问题。
nupur
答案 0 :(得分:1)
“同时”是不可能的,因为VBA本身并不是多线程的。必须运行每个报告并连续导出。整个过程可以使用VBA自动化,使其更容易。
如何以自动方式实现此目的的一个示例是为首先运行它的每个报告创建一个宏,然后导出结果。使用VBA模块连续调用每个宏。您可能需要在每次调用宏之间实现WAIT,以便有时间执行。
完成后,用户所要做的就是启动VBA模块(按钮点击最简单),等待......报告将自动一次吐出一个。
答案 1 :(得分:0)
您可以使用DoCmd对象的SendObject方法:
http://msdn.microsoft.com/en-us/library/bb214075(v=office.12).aspx
DoCmd.SendObject acSendReport, "Employees", acFormatPDF, _
"Nancy Davolio; Andrew Fuller", "Joan Weber", , _
"Current Spreadsheet of Employees", , False
答案 2 :(得分:0)
为要导出的每个报表创建一个宏,然后使用Shell命令调用多个Access实例(VBA不等待此命令完成)。
例如,如果您有一个名为Report1
的报告,请创建一个名为PrintReport1
的宏,该宏导出PDF然后关闭数据库。
然后在您的VBA代码中运行:
Shell("msaccess ""C:\DatabasePath\Database.accdb"" /x PrintReport1")
Shell("msaccess ""C:\DatabasePath\Database.accdb"" /x PrintReport2")
没有评论表现如何,但它会起作用。
答案 3 :(得分:0)
我找到了一个名为PDFTK的实用程序
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
似乎做了我想做的事情,在报告运行后,它会将它们合并为一个报告。
我的问题是从DOS深入子目录运行它。我创建了一个运行该实用程序的批处理文件,并将M1,M2和M3报告连接到一个文件中,但是让MSFT Access打开,然后更改到正确的目录,并调用批处理文件,以某种方式让它知道我&# 39;我试图连接这个特定子目录中的文件是有问题的。
这是我到目前为止的批处理文件:
pdftk m1.pdf m2.pdf m3.pdf cat output salesreportqtr.pdf
del m1.pdf
del m2.pdf
del m3.pdf
但是,因为目录每次都会更改,所以我无法让程序正确调用它。如果USER弹出到DOS(我的用户不可能,他们甚至拒绝在DOS上查看)并运行程序,一切都会正常工作。