Beispieldaten erzeugen

So erzeugen Sie beliebig viele Beispieldaten zum Testen Ihrer Datenbanken

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.

Mitglied werden

Als zahlendes Mitglied von akademie.de haben Sie vollen Zugriff auf alle Inhalte und können alle PDF-Dateien, Checklisten, Mustervorlagen und Anwendungen herunterladen.

Sind Sie sich noch unsicher? Dann wählen Sie die Option “akademie.de kostenlos testen”. So können Sie sich 14 Tage in Ruhe umschauen. Downloads stehen Ihnen in dieser Zeit nicht zur Verfügung. Gefällt Ihnen akademie.de nicht, reicht ein formloser Widerruf per E-Mail innerhalb der ersten 14 Tage. Es entstehen für Sie keine Kosten. Widerrufen Sie nicht, erhalten Sie nach Ablauf von 14 Tagen vollen Zugriff und der Mitgliedsbeitrag wird abgebucht.

Ich bin bereits Mitglied
Mitglied werden!
Ich entscheide mich für folgende Zahlungsweise:

Downloads zu diesem Beitrag

Newsletter abonnieren