Hallo, ich möchte gerne meine Mahnungen getrennt nach Rechnungsnummer und Name des Kunden als PDF exportieren. Das klappt auch soweit ganz gut, nur legt Access beim Export nur den letzten Kunden an. Er öffnet alle Datensätze korrekt, legt aber nur, wie gesagt, den letzten Kunden tatsächlich als PDF mit den Bezeichnungskriterien auf dem Speicherlaufwerk ab.
Die Beiträge zum Thema, die ich hier im Forum gefunden habe, haben mir nicht richtig weitergeholfen. Kann mir jemand sagen, wo mein Fehler liegt? Vielen Dank!
'-----------------------------------------------------------------
' Bericht "rpt_Anhörung_Duplikat" als PDF-Einzelaufstellung speichern
' Abfrage: qry_Mahnungsformular_1_Bericht
' Bericht: rpt_Anhörung_Duplikat
' Ziel: X:\Verwaltung\EB-Mahnung\Neue Mahnungsdatenbank EB\Archiv\Anhörungen\Anhörungsschreiben vom " & Date & " RechnNr " & Me.Rechnungsnummer & " " & Me.Nachname & ", " & Me.VORNAME & ".pdf
'-----------------------------------------------------------------
Private Sub Umschaltfläche85_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Set rst = CurrentDb.OpenRecordset("Select Distinct Rechnungsnummer from qry_Mahnungsformular_1_Bericht Order By Rechnungsnummer")
Do While Not rst.EOF
i = DCount("*", "qry_Mahnungsformular_1_Bericht", "Rechnungsnummer='" & rst!Rechnungsnummer & "'")
DoCmd.OpenReport "rpt_Anhörung_Duplikat", acViewPreview, , "Rechnungsnummer='" & rst!Rechnungsnummer & "'"
'DoCmd.PrintOut acPrintAll
DoCmd.OutputTo acOutputReport, "rpt_Anhörung_Duplikat", "PDF", "X:\Verwaltung\EB-Mahnung\Neue Mahnungsdatenbank EB\Archiv\Anhörungen\Anhörungsschreiben vom " & Date & " RechnNr " & Me.Rechnungsnummer & " " & Me.Nachname & ", " & Me.VORNAME & ".pdf", False
DoCmd.Close acReport, "rpt_Anhörung_Duplikat"
rst.MoveNext
Loop
Set rst = Nothing
End Sub
Hallo,
vermutlich dauert die PDF-Erzeugung etwas länger... Bau eine kleine Wartezeit (2-3 s) nach jedem PDF-Export ein.
Wie und wo mache ich das?
guckst du da:
https://dbwiki.net/wiki/VBA_Tipp:_Programmausf%C3%BChrung_f%C3%BCr_einen_Zeitraum_unterbrechen
Guten Morgen,
danke für die Hilfe, aber es funktioniert weiterhin nicht. Es wird zwar zeitverzögert gearbeitet, aber angelegt wird trotzdem nur der letzte Datensatz, obwohl er mir mehrere anzeigt. Oder habe ich den Code falsch erstellt?
Private Sub Umschaltfläche85_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim I As Long
Dim M As Double, Ende As Double, MilliSekunden As Double
Set rst = CurrentDb.OpenRecordset("Select Distinct Rechnungsnummer from qry_Mahnungsformular_1_Bericht Order By Rechnungsnummer")
Do While Not rst.EOF
I = DCount("*", "qry_Mahnungsformular_1_Bericht", "Rechnungsnummer='" & rst!Rechnungsnummer & "'")
DoCmd.OpenReport "rpt_Anhörung_Duplikat", acViewPreview, , "Rechnungsnummer='" & rst!Rechnungsnummer & "'"
'DoCmd.PrintOut acPrintAll
DoCmd.OutputTo acOutputReport, "rpt_Anhörung_Duplikat", "PDF", "X:\Verwaltung\EB-Mahnung\Neue Mahnungsdatenbank EB\Archiv\Anhörungen\Anhörungsschreiben vom " & Date & " RechnNr " & Me.Rechnungsnummer & " " & Me.Nachname & ", " & Me.VORNAME & ".pdf", False
DoCmd.Close acReport, "rpt_Anhörung_Duplikat"
Ende = Timer + (MilliSekunden / 100)
Do While M < Ende
DoEvents
M = Timer
Loop
rst.MoveNext
Loop
Set rst = Nothing
End Sub
Hallo,
lad mal die Db hier gezippt hoch, evtl reduziert auf nur den Teil, der nicht funktioniert (Tabelle(n), Abfrage,Formular, Bericht)