我有一个带有列表框和日期选择器的表单。当我输入日期并从列表框中选择40个项目中的1个,然后单击我的按钮,我可以生成一个报告。我的问题,如何循环浏览所有40个项目并将每个报告导出到PDF?任何帮助将不胜感激。另外,我希望每个报告都保存与ListBox中相同的名称。前任。第一个报告标题为RHM1等。
Private Sub Command3_Click()
MyFilter = "rptIncidentsByOrg"
MyPath = "C:ComplyTrack"
MyFilename = "Test.pdf"
For Each varItem In Me.lstActivityOrgs.ItemsSelected
Debug.Print Me.lstActivityOrgs.Column(0, varItem)
DoCmd.OpenReport "rptIncidentsByOrg", acViewPreview, , "([Activity Org] = " & Chr(34) & Me.lstActivityOrgs.Column(0, i) & Chr(34) & ")"
DoCmd.OutputTo acOutputReport, "rptIncidentsByOrg", acFormatPDF, MyPath & MyFilename, True
DoCmd.Close acReport, "Test"
Next varItem
End Sub
更新文件名的选项'b'...
尝试类似:(根据需要更改列)
A. To list only items selected:
Private Sub Command3_Click()
For Each varItem In Me.lstActivityOrgs.ItemsSelected
Debug.Print Me.lstActivityOrgs.Column(0, varItem)
DoCmd.OpenReport "rptIncidentsByOrg", acViewPreview, , "([Activity Org] = " & Chr(34) & Me.lstActivityOrgs.Column(XXX,varItem) & Chr(34) & ")"
Next varItem
End Sub
Or B. List All Items:
Private Sub Command3_Click()
MyFilter = "rptIncidentsByOrg"
MyPath = "C:ComplyTrack"
MyFilename = "<fromListBox>.pdf"
For i = 0 To Me.lstActivityOrgs.ListCount
MyFileName = Me.lstActivityOrgs.Column(0, i) & ".pdf"
Debug.Print Me.lstActivityOrgs.Column(0, i)
DoCmd.OpenReport "rptIncidentsByOrg", acViewPreview, , "([Activity Org] = " & Chr(34) & Me.lstActivityOrgs.Column(XXX,i) & Chr(34) & ")"
DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, MyPath & MyFileName
DoCmd.Close acReport, "rptIncidentsByOrg"
Next i
End Sub