Beitrag aus SmartTools Access Weekly
Mehrere Berichte in einem Arbeitsschritt drucken
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ich suche nach eine Möglichkeit, aus meiner Access-Datenbank möglich einfach mehrere Rechnungen in einem Arbeitsschritt auszudrucken. Ich verwende einen Bericht bestehend aus Hauptbericht für die Basisdaten und Unterbericht für die einzelnen Positionen. Über eine Schaltfläche kann ich zwar einzelne Rechnungen korrekt ausdrucken, aber nicht mehrere auf einmal, also zum Beispiel Rechnungsnummern 10 bis 20.
S. Wedel
ANTWORT Legen Sie in einem Formular zunächst zwei ungebundene Textfelder an, die Sie "txtVon" und "txtBis" benennen. Darunter erstellen Sie eine Schaltfläche Drucken mit dem Namen "btnPrintRange". Für die Ereignisprozedur "Beim Klicken" geben Sie folgende Anweisungen ein:
Dim I&
Dim intVon As Integer, intBis As Integer
Dim strWhere As String
intVon = Val(txtVon)
intBis = Val(txtBis)
For I = intVon To intBis
strWhere = "[RgNr]=" & CStr(I)
DoCmd.OpenReport ReportName:= "Rechnungen", _
WhereCondition:= strWhere
Next I
"Rechnungen" und "RgNr" ersetzen Sie durch den Namen des betreffenden Berichtes und den Namen des Feldes, das die Rechnungsnummer speichert. Die Eingaben "Von/Bis" werden zunächst in numerische Werte konvertiert und dienen dann einer "For"-Schleife als Start und Endwert, die Schleife läuft also beispielsweise von "10" bis "20". Aus dem aktuellen Wert der Laufvariablen "I" setzen wir eine Where-Klausel der Form "[RgNr]=10", "[RgNr]=11", "[RgNr]=12" usw. zusammen. Dieses Kriterium wird bei "DoCmd.OpenReport" als "WhereCondition" übergeben und bewirkt, dass die Datenbasis auf die betreffende Rechnungsnummer gefiltert und somit jeweils nur eine einzeln Rechnung gedruckt wird.