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╢