Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: KeinPlan0815 am Januar 14, 2015, 12:11:17

Titel: Massenberichtsdruck als PDF speichern - mit unterschiedlichen Dateinamen
Beitrag von: KeinPlan0815 am Januar 14, 2015, 12:11:17
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
Titel: Re: Massenberichtsdruck als PDF speichern - mit unterschiedlichen Dateinamen
Beitrag von: MaggieMay am Januar 14, 2015, 12:38:26
Hi,

du musst das Kriterium und den Dateipfad innerhalb der Schleife erzeugen.
Titel: Re: Massenberichtsdruck als PDF speichern - mit unterschiedlichen Dateinamen
Beitrag von: KeinPlan0815 am Januar 14, 2015, 13:01:53
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