Access 2.0
Geld sparen beim Bedrucken von selbstklebenden
Adreßetiketten
Antwort:
Access bietet die Möglichkeit, selbstklebende Adreßetiketten zum Beispiel für Kunden
zu bedrucken, deren Name und Anschrift in einer Datenbank gespeichert sind. Oft ist es
jedoch erforderlich, daß für ein und denselben Kunden mehrere Adreßlabels benötigt
werden, für andere Kunden hingegen überhaupt kein Label gedruckt werden soll.
Standardmäßig bietet Access kein Menü, das eine derartige Aufgabe bewältigt. Statt
dessen müssen mehrere Etikettenbögen vergeudet werden, nur weil ein bestimmter
Adreßlabel mehrfach benötigt wird. Die anderen unbedruckten Etiketten wandern dann
meist in den Papierkorb. Abhilfe schafft das abgedruckte Programm, das in
Access-Basic geschrieben ist. Mit diesem Utility können Sie nicht nur Mehrfachkopien
des gleichen Labels ausgeben, sondern auch die Ausgabe bestimmter Adressen
unterbinden. Damit Sie das Basic-Programm leicht nachvollziehen können, sollten Sie
die Beispieldatenbank NWIND. MDB verwenden, die bei der Installation von Access
im Unterverzeichnis C:\ACCESS\BEISPIEL\ gespeichert wird (siehe Screenshot).
Am Anfang des Listings stehen alle Deklarationen, die das Basic-Programm benötigt.
Die Funktion »LabelSetup()« öffnet eine Eingabebox, wo der Anwender die Anzahl der
zu überspringenden Labels eingibt und wie oft jedes Label gedruckt werden soll. In der
Funktion »LabelInitialize()« werden die für die Etikettenausgabe benötigten Zähler
zurückgesetzt. Im Hauptprogramm »LabelLayout (R As Report)« werden dann die
Adreßlabel gemäß Ihren Anforderungen gedruckt. So können Sie bei der
Adreßausgabe mit Access viel Geld sparen, da jetzt alle Klebeetiketten vollständig
bedruckt werden.
Listing:
Option Compare Database Option Explicit
Dim LabelBlanks& Dim LabelCopies& Dim BlankCount& Dim CopyCount&
Function LabelSetup () LabelBlanks& = Val(InputBox$("Enter Number of blank labels
to skip")) LabelCopies& = Val(InputBox$("Enter Number of Copies to Print")) If
LabelBlanks& < 0 Then LabelBlanks& = 0 If LabelCopies& < 1 Then LabelCopies&
= 1 End Function
Function LabelInitialize () BlankCount& = 0 CopyCount& = 0 End Function
Function LabelLayout (R As Report) If BlankCount& < LabelBlanks& Then
R.NextRecord = False R.PrintSection = False BlankCount& = BlankCount& + 1 Else
If CopyCount& < (LabelCopies& - 1) Then R.NextRecord = False CopyCount& =
CopyCount& + 1 Else CopyCount& = 0 End If End If End Function