我目前正在使用Access数据库创建大量报告 - 报告是使用Query作为源进行的,在Query中我使用Form作为条件,以便Form中的打开页面是报告中使用的数据。 然后我将报告保存为PDF并单击表单以运行下一组数据。 当我有超过500个报告要做时,这非常耗时。那么有没有办法让函数,VBA或宏运行表单中的所有页面并将每个报告保存为PDF?
我的表单名为NorwF,查询为NorwQ,报告为NorwRap
我希望这是有道理的,并且有一种更快的方式让这个项目顺利运行。
答案 0 :(得分:0)
如果您在表单上放置一个按钮,则此代码可以正常工作:
Dim rst As DAO.Recordset
Dim strReport As String
Dim strReportFile As String
strReport = "NorwRap"
'Set rst = Me.RecordsetClone
Set rst = CurrentDB.OpenRecordSet("NorwQ") 'use the query
Do While rst.EOF = False
strReportFile = rst!ID & ".pdf" ' give report name based on field name
DoCmd.OpenReport strReport,acViewPreview , , "id = " & rst!ID
DoCmd.OutputTo acOutputReport, strReport, acFormatPDF, strOutFile
DoCmd.Close acReport, strReport
rst.MoveNext
Loop