【发布时间】:2018-07-13 21:57:28
【问题描述】:
我是 MS Access 的新手,现在我有一个基于包含 100 条记录的表的报告。我想根据每条记录输出 pdf 文件。这意味着每条记录都有自己的单个 pdf 文件,文件名将基于记录的列名。
我在网上搜索了一下,发现这个vba代码是可以的。
Option Compare Database
Option Explicit
Private Sub Command4_Click()
Dim rsGroup As DAO.Recordset
Dim ColumnName As String, myPath As String
myPath = "C:\test\"
Set rsGroup = CurrentDb.OpenRecordset("SELECT DISTINCT columnName FROM Table_Name", _
dbOpenDynaset)
Do While Not rsGroup.EOF
ColumnName = rsGroup!columnName
' OPEN REPORT, FILTERING RECORDSOURCE BY COLUMN VALUE
DoCmd.OpenReport "Table_Name_Report", acViewPreview, , "Column='" & ColumnName & "'"
' OUTPUT REPORT TO FILE
DoCmd.OutputTo acOutputReport, "Table_Name_Report", acFormatPDF, _
myPath & ColumnName & ".pdf", False
' CLOSE PREVIEW
DoCmd.Close acReport, "Table_Name_Report"
rsGroup.MoveNext
Loop
rsGroup.Close
我从没用过VBA,每次运行这段代码都会返回一个窗口让我输入列记录值。那不是自动的,如何更改代码让它自动读取记录值并填充pdf?
【问题讨论】: