Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Massenberichtsdruck als PDF speichern - mit unterschiedlichen Dateinamen

Begonnen von KeinPlan0815, Januar 14, 2015, 12:11:17

⏪ vorheriges - nächstes ⏩

KeinPlan0815

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

MaggieMay

Hi,

du musst das Kriterium und den Dateipfad innerhalb der Schleife erzeugen.
Freundliche Grüße
MaggieMay

KeinPlan0815

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