Beitrag aus SmartTools Access Weekly
Nummerierte Kopien eines Berichtes drucken
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ihr Tipp zum Drucken von mehreren Kopien eines Berichtes hat mich an ein Problem erinnert, für das ich noch keine Lösung gefunden habe: Wir benötigen wie im Tipp beschrieben ebenfalls mehrere Kopien eines Berichtes aber dabei soll auf der ersten Kopie "Kopie 1", auf der 2. Kopie "Kopie 2" usw. (bis zu 5 Kopien) links oben stehen. Meine Versuche mit globalen Variablen haben nicht zum Erfolg geführt. Kennen Sie eine Möglichkeit, dieses Problem mit Access zu lösen?
Diverse Anfragen
ANTWORT Kopieren Sie zunächst folgende Deklaration und die Funktion "KopieNummer()" in ein vorhandenes oder in ein neues Modul:
Public lngKopieNummer As Long
Public Function KopieNummer() As String
KopieNummer = "Kopie " & CStr(lngKopieNummer)
End Function
Für den Ausdruck verwenden Sie folgende Anweisungen:
Sub DruckMitKopienummer()
Dim I&
Dim strAnz As String
Const cstrReport = "Katalog"
strAnz = InputBox("Anzahl Kopien:")
If strAnz = "" Then Exit Sub 'Abbrechen
For I = 1 To Val(strAnz)
lngKopieNummer = I
DoCmd.OpenReport cstrReport, acNormal
Next I
End Sub
Die Konstante "cstrReport" passen Sie gemäß dem Namen des auszudruckenden Berichtes an. Legen Sie dann im Bericht an passender Stelle ein ungebundenes Textfeld an, das Sie mit "txtKopieNummmer" benennen und für dessen Eigenschaft "Steuerelementeinhalt" Sie folgenden Ausdruck angeben:
=KopieNummer()
Speichern Sie die Änderungen und lassen Sie die Routine laufen. Sie erfragt zunächst die Anzahl der Kopien. In einer Schleife von "1" bis "Anzahl Kopien" wird dann die globale Variable "lngKopieNummer" auf den aktuellen Wert der Schleifenvariable "I" gesetzt, ist also "1", "2", "3" usw. Anschließend wird der Bericht ausgedruckt. Dabei ruft er automatisch die Funktion "KopieNummer()" auf, die dann einen Text wie "Kopie 1", "Kopie 2", Kopie 3" usw. für das Textfeld liefert.