Datensätze mehrfach ausgeben

15.12.2006 von André Minhorst
Die Standardanwendung für das mehrfache Ausgeben ein und desselben Datensatzes ist der Etikettendruck. Vor allem um die Weihnachtszeit dürften viele Firmen froh sein, wenn Sie die Anzahl der Adressetiketten für Präsente und Karten schnell einstellen können. Wir zeigen, wie Sie eine passende Datenherkunft bereitstellen.

Üblicherweise sorgt man direkt in Berichten für das Ausgeben von Datensätzen in der richtigen Anzahl. Stichwörter für eine diesbezügliche Suche in der Onlinehilfe sind MoveLayout, NextRecord und PrintSection.

In diesem Artikel sollen diese Methoden außen vor bleiben: Sie sorgen dafür, dass man eine gute Portion VBA zu einem Bericht hinzufügen muss, bevor man diesen dazu bringt, die Datensätze in der in einem zusätzlichen Feld angegebenen Anzahl auszugeben. Es wäre doch viel einfacher, wenn man die Datenherkunft irgendwie für diesen Zweck vorbereiten könnte.

Bild 1: Als Beispieltabelle hält die Tabelle Kunden der Nordwind- Datenbank her.

Die Testdaten für diese Lösung stammen mal wieder aus der Nordwind-Datenbank – in diesem Fall handelt es sich um die Tabelle Kunden (Bild 1). Egal, ob man die Kunden über die Methoden MoveLayout, NextRecord oder PrintSection ausgeben möchte oder die hier vorgestellte Technik verwendet: Die Tabelle benötigt auf jeden Fall ein Feld, in das Sie die Anzahl der pro Datensatz zu druckenden Exemplare eintragen können. Dieses fügen Sie einfach hinzu.

Ideen zum Vervielfältigen von Datensätzen

Es gibt immer mindestens zwei Wege, eine Aufgabe mit Access zu erledigen. Das Ziel ist ja, eine Datenherkunft für einen Bericht zu schaffen, die Datensätze aus der Tabelle Kunden in der angegebenen Anzahl enthält. Die erste, weniger elegante Variante besteht im Einsatz einer kleinen VBA-Prozedur, die einfach jeden Datensatz durchläuft und diesen so oft in eine neue, temporäre Tabelle einträgt, wie es im Feld Anzahl angegeben ist. Das ist aber eher die Holzhacker-Methode. Viel eleganter und auch schneller erledigt die Aufgabe eine Abfrage. Nur wie?

Mehrfache Datensätze per Abfrage

Ohne Tricks funktioniert das in der Tat nicht. Zunächst einmal benötigen Sie eine zusätzliche Tabelle namens tblAnzahlen, die lediglich ein Feld enthält – und mit allen zu erwartenden Anzahlen gefüllt ist.

Und nun kommt der Clou: Legen Sie eine neue Abfrage an, die die Tabellen Kunden und tblAnzahlen enthält – allerdings ohne irgendwelche Beziehungen. Fügen Sie alle Felder der Tabelle Kunden mit Ausnahme des Feldes Anzahl sowie das Feld Anzahl der Tabelle tblAnzahlen in das Entwurfsraster ein. Nun fehlt nur noch eine kleine Bedingung, die Sie für das Feld Anzahl angeben:

<=[Kunden].[Anzahl]

Bild 2: So sieht der Entwurf der Abfrage zum Ausgeben mehrfacher Datensätze aus …
Bild 3: … und so das Ergebnis – jeder Datensatz erscheint entsprechend der angegebenen Anzahl.

Fertig! Die fertige Abfrage sollte im Entwurf nun wie in Bild 2 aussehen, und das Ergebnis finden Sie in Bild 3.