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:
Die 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 SubDer 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.
