2015-05-18 2 views
0

У меня есть форма со списком и сборщиком даты. Когда я вводим дату и выбираю 1 из 40 элементов из списка и нажимаю кнопку, я могу создать один отчет. Мой вопрос, как можно просмотреть все 40 элементов и экспортировать каждый отчет в pdf? Любая помощь будет оценена. Также я хотел бы, чтобы каждый отчет сохранялся с тем же именем, что и в списке. Ex. первый отчет называется RHM1 и т. д.Петля через весь список Access 2010

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 

ответ

0

ОБНОВЛЕНО Опция «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 
+0

я пошел с опцией Б. генерирует первый отчет и сохраняет мой C: \, как и ожидалось. Однако я получаю ошибку 2501 времени выполнения после завершения первого отчета. Я отправил исправленный код с моим вопросом –

+0

Я обновил «Вариант B» для сохранения по имени в списке. Причина вашей ошибки 2501 заключается в том, что вы закрываете отчет «Test», который не существует, - используйте фактическое имя отчета (а не имя файла). –

+0

Это сработало. Я выводил все отчеты на свой диск C; \ с именами и в формате pdf одним нажатием кнопки –