Etiketten mit Access

Mit regem Interesse habe ich Ihren 5-Minuten-Kurs zu Access-Etiketten verfolgt. Leider gelingt es mir nicht, die Access-Datenbank zu öffnen, weil mir kein Access 97, sondern nur die Version 95 zur Verfügung steht. Außerdem fehlt auf der CD der im Artikel angekündigte Etiketten-Assistent. Im Beitrag vermisse ich auch Hinweise auf die Programmierung, damit ich die Etiketten an meine Access-95-Datenbank anpassen kann. Können Sie mir diese Informationen nachliefern?

Ja, die Information geben wir gerne. Auf der aktuellen Heft-CD finden Sie den Etiketten-Assistent und eine MDB-Datei für Access 95 sowie den Artikel aus der Ausgabe 5/98 als PDF.
Daß Sie die andere MDB-Datei nicht öffnen konnten, hat mit dem Dateiformat der Version 97 zu tun, das Access 95 nicht kennt. Die Programmierung ist in beiden Access-Versionen gleich.
Der besondere Clou beim Etikettendruck in Ausgabe 5/98 ist, daß Sie jedes Etikett mehrfach drucken können. Diesen Button für den Mehrfachdruck können Sie mit dem Listing rechts programmieren. Wie oft ein Datensatz gedruckt wird, bestimmt dabei das Feld Anzahl. Welche Etiketten gedruckt werden, legen Sie in der Listbox des Formulars Etikettendruck fest. Die Eigenschaft Mehrfachauswahl ist auf Erweitert eingestellt, so daß Sie mit Maus und [Strg]-Taste mehrere Datensätze wählen können.
Bei der Programmierung sind zwei Schritte nötig, um Etiketten mehrfach zu drucken: Zuerst erzeugt das Programm eine Tabelle tmpEtiketten, die jedes Etikett mehrfach enthält. Dann ruft das Programm den Befehl DoCmd.- OpenReport auf, um den Bericht zu drucken. Als Datenherkunft nutzt der Bericht die Tabelle tmpEtiketten.
Im Listing löscht das SQL-Delete-Kommando in DoCmd.Run-SQL den Inhalt der Tabelle tmpEtiketten. Danach prüft die For-Each-Schleife anhand der ItemsSelected-Eigenschaft, welche Datensätze in der Listbox markiert sind. Für jeden markierten Datensatz generiert Access einen SQL-Befehl. Diesen SQL-Insert-Befehl führt die For-Next-Schleife mehrfach aus. Wie oft der Datensatz in der Tabelle tmpEtiketten eingefügt wird, legt die zweite Spalte der Listbox fest: Column(2, varElement).
Wenn die Tabelle tmpEtiketten gefüllt ist, ruft DoCmd.OpenReport den Bericht Etiketten tmpEtiketten auf, der tmpEtiketten verwendet.

Listing: Schaltflächen Mehrfachdruck
Private Sub Drucken_Click ()¶
Dim SQL, stDocName As String¶
Dim varElement As Variant¶
Dim i, Spalte As Integer¶
Dim Ctrl As Control¶

Set Ctrl = Me.lstEtiketten¶
DoCmd.RunSQL (ôDELETE FROM tmpEtikettenô)¶

For Each varElement In Ctrl.ItemsSelected¶
Rem Einfügeabfrage¶
SQL = ôINSERT INTO tmpEtiketten (Nummer,Anzahl,Beschriftung,Beschreibung,Preis) ôSELECT Nummer, Anzahl, Beschriftung, Beschreibung, Preis FROM Beschriftung WHERE ID = ô & Ctrl.ItemData (varElement)¶

Rem Datensatz x-mal einfügen¶
For i=1 To Ctrl.Column (2, varElement)¶
DoCmd.RunSQL (SQL)¶
Next i¶
Next varElement¶
stDocName = ôEtiketten tmpEtikettenô¶
DoCmd.OpenReport stDocName, acPreview¶
End Sub¶