Hallo zusammen,
- Ich möchte einen Bericht (Test) per VBA anstoßen und als PDF speichern
- Dieser Bericht muss für jedes Aktenzeichen neu gedruckt werden
- Das daraus resultierende PDF muss mit dem Aktenzeichen (als Dateinamen) gespeichert werden.
Meine Lösung funktioniert soweit ganz gut. Leider überschreibt er immer die erste erzeugte PDF Datei (500 mal) und legt nicht 500 verschiedene Datein ab.
Was mache ich falsch? :-\ :'(
Würde mich freuen, wenn jemand eine Idee hätte. ;D
Private Sub Befehl0_Click()
Dim sql As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Pfad As String
Dim strWHERE As String
sql = "Select Aktenzeichen from T_Gruppiert"
Set db = CurrentDb
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
strWHERE = "Aktenzeichen = " & rs!Aktenzeichen
Pfad = "C:\temp\" & DLookup("[Aktenzeichen]", "[T_Gruppiert]") & ".pdf"
Do Until rs.EOF
DoCmd.OpenReport "test", acViewPreview, , strWHERE, acHidden
DoCmd.OutputTo acOutputReport, "test", acFormatPDF, Pfad, False
DoCmd.Close acReport, "test"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
Hi,
du musst das Kriterium und den Dateipfad innerhalb der Schleife erzeugen.
Wunderbar! Danke für den Tip ;D ;D ;D
Jetzt geht es.
Private Sub Befehl0_Click()
Dim sql As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Pfad As String
Dim strWHERE As String
sql = "Select Aktenzeichen from T_Gruppiert"
Set db = CurrentDb
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
Do Until rs.EOF
Pfad = "C:\temp\" & rs.Fields("Aktenzeichen").Value & ".pdf"
strWHERE = "Aktenzeichen = " & rs!Aktenzeichen
DoCmd.OpenReport "test", acViewPreview, , strWHERE, acHidden
DoCmd.OutputTo acOutputReport, "test", acFormatPDF, Pfad, False
DoCmd.Close acReport, "test"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub