Beispieldaten erzeugen

So erzeugen Sie beliebig viele Beispieldaten zum Testen Ihrer Datenbanken

Ersten Kommentar schreiben
Stand: 2. Mai 2011

So ziemlich in jeder Datenbank benötigen Sie während der Entwicklung Beispieldaten zum Testen. Damit irgendetwas vorhanden ist, tippen Sie schnell "asdf" für Texte, "4711" für Zahlenfelder und "1.1.2011" für ein Datum. Das wird noch dreimal kopiert und muss dann reichen. Warum so geizig? Testdaten für Access lassen sich mit wenig Aufwand jederzeit in beliebiger Menge erzeugen, wie Lorenz Hölscher hier zeigt.

Beliebige Daten in eine Tabelle schreiben

Für dieses Beispiel benötigen Sie in einer Access-Datenbank eine Tabelle tblMengen mit den Feldern wie im folgenden Bild:

Bild vergrößernDie Test-Tabelle bietet für jeden Datentyp ein Feld

Die Beispiel-Tabelle mit den in diesem Beitrag erwähnten Makros steht zum Download bereit: Download Test-Datenbank (.mdb, 172 kB).

Dazu schreiben Sie eine Prozedur ErzeugeDaten() in einem Standard-Modul, welche in die Tabelle eine beliebige Menge Daten hineinschreibt. Sie können mittels Zufallsfunktion und einer Schleife viele Datensätze erzeugen:

Option Compare Database
Option Explicit

Const m_clngAnzZeilen = 10
Const m_clngMinZahl = 0
Const m_clngMaxZahl = 100
Const m_cdatMinDatum = #1/1/1960#
Const m_cdatMaxDatum = #1/1/2011#

Sub ErzeugeDaten()
    Dim rcsMenge As Recordset
    Dim dblDatum As Double
    Dim dblZahl As Double
    Dim lngZaehler As Long

    Randomize Now()     'Zufallsgenerator initialisieren
    Set rcsMenge = CurrentDb.OpenRecordset("tblMengen", dbOpenDynaset)

    For lngZaehler = 1 To m_clngAnzZeilen
        dblDatum = ((m_cdatMaxDatum - m_cdatMinDatum) * Rnd) + m_cdatMinDatum
        dblZahl = ((m_clngMaxZahl - m_clngMinZahl) * Rnd) + m_clngMinZahl

        rcsMenge.AddNew
        rcsMenge.Fields("MDatum").Value = dblDatum
        rcsMenge.Fields("MZahl").Value = dblZahl
        'oder ganzzahlig bzw. ohne Uhrzeit
        'rcsMenge.Fields("MDatum").Value = CLng(dblDatum)
        ' rcsMenge.Fields("MZahl").Value = CLng(dblZahl)
        rcsMenge.Update
    Next
End Sub

Der obige Code ermittelt mit der Rnd()-Funktion (Random = Zufall) immer einen Wert zwischen 0 und 1, welcher mit der Differenz zwischen jeweiligem Minimum und Maximum multipliziert wird. Falls beispielsweise das Minimum 3 und das Maximum 10 war, ergeben sich Werte zwischen 0 und 7 inklusive. Zu diesem Wert muss dann das Minimum wieder addiert werden, damit die Ergebnisse wieder zwischen 3 und 10 liegen.

Diese Formel gilt sowohl für eine Double-Zahl als auch für das Datum. Wenn Sie ganzzahlige Ergebnisse oder ein Datum ohne Uhrzeit benötigen, entfernt die CLng()-Funktion (ConvertToLong) die jeweiligen Nachkommastellen.

Die automatisch erzeugten Daten

Diese Prozedur erzeugt schon die gewünschten Zahlen und Datumswerte, nur noch keine Texte.

Als Mitglied können Sie diesen Beitrag weiterlesen!

Werden Sie Mitglied und testen Sie akademie.de 14 Tage lang kostenlos!

In den ersten 14 Tagen haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Sie können in dieser Zeit ohne Angabe von Gründen stornieren. Eine E-Mail an service@akademie.de genügt. Nur wenn Sie Mitglied bleiben, wird der Mitgliedsbeitrag nach Ende der 14tägigen Stornofrist abgebucht.

Ich bin bereits Mitglied
Jetzt Mitglied werden und akademie.de 14 Tage kostenlos testen
Ich entscheide mich für folgende Zahlungsweise:
14 Tage Stornorecht:
Ich kann meine Mitgliedschaft in den ersten 14 Tagen jederzeit formlos stornieren, z.B. per E-Mail an service@akademie.de.

Downloads zu diesem Beitrag

Newsletter abonnieren