我正在尝试将每个单独的记录导出为其自己的 PDF 并自动将其保存到特定的文件位置。我想自动化整个过程,但是在使 VBA 代码正常工作时遇到问题。我正在处理的数据库有 1 个表、1 个查询和 1 个报告。有 217 条记录,因此我想将 217 个 PDF 导出到文件位置。另外,我希望根据表中指定的记录 ID 来命名 PDF(例如:记录 1 将保存为“Record1.pdf”,记录 2 将保存为“Record2.pdf”,...等等)我已经有一段时间没有使用 Access 了,所以所有的 VBA 代码对我来说都是新的。如果您需要更多详细信息,请告诉我。
我的报告名称是“电子邮件” 我的查询名称是“Query1”
任何帮助都会很棒。
这是我到目前为止的代码示例。我从互联网上找到了一些零碎的东西。
Private Sub Command0_Click()
Dim ReportName As String
Dim OutpoutFolder As String
Dim rs As DAO.Recordset
ReportName = "Emails"
OutputFolder = "C:\Users\MyName"
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Query1")
Do While Not rs.EOF
DoCmd.OpenReport ReportName, acViewReport, "[ID] = " & rs![ID] & " ", acHidden
DoCmd.OutputTo acOutputReport, "", acFormactPDF, OutputFolder & "\" & rs![ID] & ".PDF"
DoCmd.Close acReport, ReportName, acSaveYes
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
---目前,当我运行此代码时,它仅导出一个 PDF(名为“1.pdf”)并自动将其保存到我的文件位置,但所有记录都在此 PDF 中。然后代码永远不会移动到下一条记录,然后就会失败。
你漏掉了一个逗号:
DoCmd.OpenReport ReportName, acViewReport, , "[ID] = " & rs![ID] & "", acHidden