Auch wenn Software-Entwicklung mit Access normalerweise eine rundum beglückende glücklich machende Beschäftigung ist, so gibt es doch Tätigkeiten, die man nur lustlos ausführt. Der Autor dieser Zeilen etwa ist immer etwas ungehalten, wenn er Beispieldaten in eine oder mehrere Tabellen eingeben muss. Ist das nicht die langweiligste Arbeit überhaupt Im krassen Gegensatz dazu steht die Aufgabe, einen Assistenten zu programmieren, der einem diese lästige Arbeit abnimmt! Einfach die Zieltabelle auswählen, für jedes Feld die Art der Testdaten auswählen und loslegen – lesen Sie hier, wie das funktioniert!
Herr Fritz Mustermann, Teststraße 1, 12345 Beispielhausen, Deutschland. Telefon 0123/456789, Telefax 0123/987654. Frau Martha Müller … halt! So geht es nicht weiter. Selbst wenn der Kopf vom Programmieren raucht – Testdaten eingeben ist keine willkommene Abwechslung.
Stattdessen führen wir doch lieber die folgenden Schritte durch:
- Klicken Sie auf den Menüeintrag Extras|Add-Ins|Beispieldaten-Assistent (Access 2003 und älter) oder den Ribbon-Eintrag Datenbanktools|Add-Ins|Beispieldaten-Assistent (Access 2007 und jünger).
- Es erscheint der Beispieldaten-Assistent (s. Bild 1). Wählen Sie hier die Tabelle aus, die Sie mit Beispieldaten bestücken möchten. Die Liste im unteren Bereich des Beispieldaten-Assistenten zeigt nun alle Felder dieser Tabelle an.
- Geben Sie die Anzahl der Datensätze ein, die der Beispieldaten-Assistent für Sie anlegen soll.
- Betrachten Sie die Liste der Felder der zu füllenden Tabelle. Alle Felder enthalten in der Spalte Füllen einen Haken. Wenn Sie ein Feld nicht mit Beispieldaten füllen möchten, entfernen Sie einfach den entsprechenden Haken.
- In der dritten Spalte finden Sie in einigen Zeilen den Eintrag <Auswählen>, in anderen wurden bereits automatisch andere Einträge ausgewählt – zum Beispiel Vorname oder Nachname. Hier stellen Sie die Art der Daten ein, mit der Sie das entsprechende Feld füllen wollen – dazu später mehr.
- Für manche Datenarten zeigt der Assistent oberhalb der Liste Informationen für Parameter 1, Parameter 2 und Parameter 3 an. Hierbei handelt es sich um zusätzliche Parameter, mit denen Sie etwa für das Anlegen von Datumsangaben den Bereich der Daten eingrenzen (beispielsweise 1.1.2010 bis 30.6.2010).
- Wenn Sie alle Informationen angegeben haben, brauchen Sie nur noch auf die Schaltfläche Beispieldaten schreiben zu klicken – schon legt der Beispieldaten-Assistent 100, 1.000 oder noch mehr Beispieldatensätze an. Je nach Konfiguration der zu erstellenden Daten kann dies einige Sekunden dauern – aber besser einen Kaffee trinken gehen, als selbst Beispieldaten einzugeben!
Bild 1: Der Beispieldaten-Assistent im Einsatz
Beispieldaten-Arten
Wie bereits angedeutet, gibt es verschiedene Arten von Beispieldaten. Nachfolgend stellen wir diese vor und erläutern die Parameter, die Sie zum Anlegen dieser Daten festlegen müssen.
- Vorname: Vornamen werden per Zufall aus einer Tabelle gefüllt.
- Nachname: Gleiches gilt für Nachnamen: Auch sie werden zufällig aus einer Tabelle ausgewählt.
- AnredeID: Wenn die Zieltabelle ein Feld namens AnredeID enthält, das auf einer Tabelle namens tblAnreden oder ähnlich basiert, die zwei Felder etwa namens AnredeID und Anrede enthält, können Sie diesen Datentyp verwenden. Er trägt automatisch die AnredeID der Tabelle tblAnreden in das Zielfeld ein, das dem Geschlecht des Vornamens des Datensatzes entspricht. Die drei Parameter erwarten die Angabe der Tabelle, aus der die Anreden entnommen werden, den Namen des Primärschlüsselfeldes dieser Tabelle sowie den Namen des Feldes, das die Anreden selbst enthält.
- Firma: Die Firma besteht aus einem Eintrag der Nachnamen-Sammlung plus einem zufälligen Wert wie GmbH, AG et cetera.
- Straße: Die Straße wird zufällig einer Straßen-Tabelle entnommen.
- Hausnummer: Die Hausnummern werden zur Laufzeit per Zufallsgenerator erzeugt. Mit Parameter 1 legen Sie den kleinsten Wert, mit Parameter 2 den höchsten Wert für die Hausnummer fest. Das Tool legt den Bereich standardmäßig auf 1 – 100 fest.
- Straße mit Hausnummer: Fügt die Informationen wie in Straße und Hausnummer gleichzeitig in ein Feld ein. Auch hier können Sie den Zahlenbereich für die Hausnummer festlegen.
- PLZ: Die PLZ wird gemeinsam mit dem Ort aus einer Tabelle einiger realer Kombinationen aus PLZ, Ort, Bundesland, Land und Vorwahl zufällig ausgewählt.
- Ort: siehe PLZ
- PLZ und Ort: Fügt PLZ und Ort gleichzeitig in ein Feld ein.
- Land: siehe PLZ
- Bundesland: siehe PLZ
- Telefon: Besteht aus Vorwahl und Rufnummer. Die Vorwahl wird ebenfalls aus der Tabelle mit PLZ, Ort und so weiter ermittelt. Die Rufnummer wird per Zufallsgenerator festgelegt. Parameter 1 und Parameter 2 geben die minimale und die maximale Anzahl Stellen der Telefonnummer an, die Standardwerte sind 6 und 8.
- E-Mail: Die E-Mail wird aus dem Vornamen und dem Nachnamen nach dem Schema <Vorname>@<Nachname>.de zusammengesetzt.
- Anrede: Wenn es kein Lookup-Feld für die Anrede gibt, sondern nur ein normales Textfeld, trägt diese Datenart je nach dem für den Datensatz ermittelten Vornamen die Anrede Herr oder Frau ein.
- Geschlecht: Auch das Geschlecht wird entsprechend dem gewählten Vornamen eingestellt.
- Internet: Die Internetadresse wird nach dem Schema www.<Nachname>.de zusammengestellt.
- Zahlen: Zahlen werden nach dem Zufallsprinzip ausgewählt. Parameter 1 gibt dabei die untere Grenze der Zahl an, Parameter 2 die obere Grenze und Parameter 3 die Anzahl der Stellen hinter dem Komma.
- Datum: Auch das Datum wird per Zufallsgenerator ermittelt. Parameter 1 gibt die Untergrenze, Parameter 2 die Obergrenze des Datumsbereichs an.
- Fremdschlüsselfeld/Nachschlagefeld: Dieser Datentyp ist besonders interessant: Sie können damit Daten aus einer beliebigen Lookup-Tabelle auswählen lassen. Der erste Parameter nimmt dabei den Namen der Lookup-Tabelle auf, der zweite den Namen des Primärschlüsselfeldes dieser Tabelle. Für diesen Datentyp wird je Datensatz ein zufälliger Eintrag der Lookup-Tabelle ausgewählt.
- Ja/Nein: Dieser Datentyp wählt einen der Werte -1 oder 0 aus. Mit dem ersten Parameter geben Sie einen Wert zwischen 1 und 100 für die Wahrscheinlichkeit für den Wert -1 an.
- Nummerierte Texte: Für manche Felder ist es schwierig, sinnvolle Zufallswerte zu ermitteln – zum Beispiel Projektnamen. In diesem Fall sollten Sie mit Werten wie Projekt 1, Projekt 2 et cetera vorlieb nehmen. Für diesen Fall verwenden Sie den Datentyp Nummerierte Texte: Sie geben für den ersten Parameter eine beliebige Zeichenkette an, die an irgendeiner Stelle den Ausdruck [] enthält. Für den zweiten Parameter geben Sie die Startzahl an. Ein Ausdruck wie Projekt [] führt bei der Startzahl 12 zu den Beispielwerten Projekt 12, Projekt 13 und so weiter.
Beispiel zum Anlegen von Beispieldaten
Schauen wir uns an, wie der Beispieldaten-Assistent bei einer einfachen Adressentabelle arbeitet. Nachdem Sie die Datenbankdatei mit der zu füllenden Tabelle geöffnet und den Beispieldaten-Assistenten gestartet haben, wählen Sie mit dem Kombinationsfeld im oberen Bereich zunächst die Zieltabelle aus, in diesem Fall tblAdressen. Dann tragen Sie die Anzahl der gewünschten Datensätze ein, zum Beispiel 100. Schließlich geht es an die Festlegung der Art der einzufügenden Daten.
Hier nimmt Ihnen der Beispieldaten-Assistent eine Menge Arbeit ab: Er scannt nämlich die Feldnamen und vergleicht die Werte mit einer beliebig erweiterbaren Mapping-Tabelle, die gleich den richtigen Datentyp für das Hinzufügen der Beispieldaten auswählt.
Für unsere Tabelle tblAdressen bleibt somit nur noch wenig zu tun (s. Bild 2): Alle Felder wurden gleich mit den richtigen Datentypen versehen. Außerdem hat der Assistent für die Felder, für die Standardwerte vorzugeben sind, passende Werte eingetragen. Dies betrifft beispielsweise das Feld AnredeID. Hier hat der Assistent erkannt, dass womöglich eine Tabelle hinter dem Kombinationsfeld zur Auswahl der Anrede steckt, und gleich die richtigen Parameter voreingestellt: Parameter1 erhält mit tblAnreden die Tabelle, aus der die Anreden stammen, Parameter2 den Namen des Primärschlüsselfeldes dieser Tabelle und Parameter3 das Feld, das schließlich die verwendeten Anreden enthält. Ein weiteres Beispiel ist das Feld Straße, in dem die Felder Parameter1 und Parameter2 mit 1 und 100 den Bereich der Hausnummern enthalten. Auch bei den Feldern Telefon und Telefax wurden automatisch die Parameter für den Datentyp Telefon eingetragen, nämlich die Anzahl der Stellen der Telefonnummer hinter der Vorwahl.
Bild 2: Die Datenarten werden je nach Feldname gleich automatisch hinzugefügt.
Ein Klick auf die Schaltfläche Beispieldateien schreiben startet den eigentlichen Vorgang, wobei die Anzahl der geschriebenen Datensätze neben der Schaltfläche angezeigt wird. Das Ergebnis beeindruckt: Schnell landen 100 sehr realistisch wirkende Beispieldatensätze in der Tabelle tblAdressen (s. Bild 3).
Bild 3: Die Adressen-Tabelle mit frisch angelegten Beispieldaten
Beispieldaten mit Lookup-Tabellen
Wenn Sie schnell Daten in mehreren Tabellen anlegen möchten, erledigen Sie dies hintereinander. Nehmen wir an, Sie möchten die Tabellen des Datenmodells aus Bild 4 mit Daten füllen. Dann brauchen Sie zunächst eine Reihenfolge, die sich zum größten Teil danach richtet, wie die Tabellen miteinander verknüpft sind. Wir müssen natürlich erst die Tabellen mit Daten füllen, auf die von anderen Tabellen aus per Fremdschlüsselfeld verwiesen wird. Der einfachste Fall ist die Tabelle tblAnreden: Sie wird von zwei Tabellen referenziert und verweist auf keine andere Tabelle. Sie ist aber auch kein Fall für den Beispieldaten-Assistenten, denn die beiden Datensätze mit den Werten Herr und Frau für das Feld Anrede füllen wir schnell von Hand.
Bild 4: Die Tabellen dieses Datenmodells sollen mit dem Beispieldaten-Assistenten gefüllt werden.
Alle übrigen Tabellen verweisen auf mindestens eine andere Tabelle. Die beiden Tabellen tblKunden und tblMitarbeiter besitzen jedoch nur Fremdschlüsselfelder zur Tabelle tblAnreden, die ja schon gefüllt ist. Also können wir diese zuerst mit Beispieldaten befüllen. Danach kommt die Tabelle tblProjekte dran, die wiederum auf tblKunden verweist – und diese Tabelle wird ja gleich zu Beginn gefüllt. Die letzte zu füllende Tabelle ist die Tabelle tblMitarbeiterProjekte, die festlegt, welcher Mitarbeiter in welchem Projektteam sitzt.
Beginnen wir also mit der Kundentabelle. Die Parameter für diese Tabelle zeigt Bild 5. Für das Feld Kunde verwenden wir den Datentyp Firma, der praktisch identisch ist. Später erfahren Sie, wie Sie das Mapping von Feldnamen erweitern können, sodass etwa ein Eintrag wie Kunde direkt auf den Datentyp Firma gemappt wird. Die meisten der übrigen Felder werden automatisch erkannt. Sie müssen lediglich noch das Feld KundeSeit und Aktiv einstellen. Ersteres soll mit Datumsangaben gefüllt werden, wobei der Eintritt frühestens am 1. Januar 2003 und spätestens am 30. Juni 2010 erfolgt sein soll. Das Feld Aktiv soll mit Ja/Nein-Werten gefüllt werden, wobei 60% der Datensätze den Wert Ja annehmen sollen.
Bild 5: Einstellungen zum Füllen einer Kundentabelle
Die Tabelle tblMitarbeiter birgt ebenfalls keine Überraschungen, was die zu füllenden Felder betrifft (s. Bild 7).