0
我想为每个ID打印我的Access 2010报告。单独打印到PDF使用VBA编号
比方说我的报告结构是这样的:
ID1, Name1, phone1, address1,
ID1, Name2, phone2, address2,
ID2, Name, phone, address,
ID3, Name1, phone1, address1,
ID3, Name2, phone2, address2,
我想是每个ID被写入到一个单独的.pdf文件是这样的:
ID1.pdf包含:
ID1, Name1, phone1, address1,
ID1, Name2, phone2, address2,
ID2.pdf包含:
ID2, Name, phone, address,
ID3.pdf包含:
ID3, Name1, phone1, address1,
ID3, Name2, phone2, address2,
我创建了下面的代码:
Private Sub PrintPDF_Click()
Dim rst As DAO.Recordset
Dim OutputFile As String
Dim FileSavePath As String
FileSavePath = "C:\Test\"
Set rst = CurrentDb.OpenRecordset("SELECT distinct ID FROM Report_Query ORDER BY _ID")
With rst
Do Until .EOF
DoCmd.OutputTo acOutputReport, Bericht1, acFormatPDF, FileSavePath & ![ID] & ".pdf", True
.MoveNext
Loop
End With
End Sub
命名一直运作良好,但它打印的所有记录。我有ID1.pdf,ID2.pdf和ID3.pdf,但每个文件都包含所有记录。
如何为每个ID生成一个文件?
在记录集循环 - 打开报告过滤到单个ID,输出报告,关闭报告,移动到下一个记录,打开报告过滤到单个ID,输出报告,关闭报告,移动... – June7
你可以执行每个ID的查询。像'SELECT distinct ID FROM Report_Query where ID ='ID1'ORDER BY _ID' – Maddy
你有外循环,它迭代所有的ID。在'DoCmd.OutputTo ...'行之前,输入另一个查询。就像'我想从report_query中选择数据,其中ID = rst.ID' ....也摆脱了'用rst ... End With'并使用'Do Until rst.EOF'和'rst.MoveNext' – jsotola