Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

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.