Hi Piekarek,
so in etwa. Für das Beispiel mußt Du allerdings über Projekt/Verweise einen Verweis auf die Microsoft DAO 3.x Object Library einbinden, sonst geht es nicht. Außerdem muß bei +" Test.MDB" ein Backslash vorausgehen.
Private Sub Form_Load()
Dim sDBName As String
sDBName = App.Path + "Test.MDB"
If Dir(sDBName) = "" Then
If Not CreateMyDataBase(sDBName) Then Exit Sub
End If
Set Data1.DatabaseName = sDBName
Data1.Refresh
End Sub
Private Function CreateMyDataBase(ByVal sName As String) As Boolean
Dim DB As Database
Dim tble As TableDef
Dim fld As Field
Dim inx As Index
Dim prop As Property
CreateMyDataBase = False
'Datenbank erstellen
On Error Resume Next
Set DB = DBEngine.CreateDatabase(sName, dbLangGeneral, dbEncrypt)
If Err.Number > 0 Then
MsgBox "Die Datenbank " & sName & _
" konnte nicht erstellt werden. " & String(2, vbCrLf) & _
"Grund: Fehler Nr.:" & Str(Err.Number) & String(2, vbCrLf) & _
"Beschreibung: " & Err.Description, vbCritical, "Fehler bei der" & _
"Erstellung der Datenbank"
Exit Function
End If
On Error GoTo 0
'Tabelle erstellen
Set tble = DB.CreateTableDef("Kunde")
'Felder in der Tabelle erstellen
With tble
'Feld SNR soll die Satznummer enthalten und
'wird automatisch incrementiert
.Fields.Append .CreateField("SNR", dbLong)
.Fields("SNR").Attributes = dbAutoIncrField
'Außerdem erhält es den primären Index:
Set inx = tble.CreateIndex("myInx")
With inx
.Fields.Append .CreateField("SNR", dbLong)
.Primary = True
.Unique = True
.IgnoreNulls = True
End With
tble.Indexes.Append inx
.Fields.Append .CreateField("Name", dbText, 75)
.Fields.Append .CreateField("Vorname", dbText, 50)
.Fields.Append .CreateField("Geburtsdatum", dbDate)
.Fields.Append .CreateField("Geburtsort", dbText, 75)
.Fields.Append .CreateField("Postleitzahl", dbText, 8)
.Fields.Append .CreateField("Wohnort", dbText, 75)
.Fields.Append .CreateField("Strasse", dbText, 50)
.Fields.Append .CreateField("Hausnummer", dbText, 8)
.Fields.Append .CreateField("Telefon", dbText, 17)
.Fields.Append .CreateField("EMail", dbText, 50)
.Fields.Append .CreateField("Kommentar", dbMemo)
End With
For Each fld In tble.Fields
If fld.Name <> "SNR" Then fld.AllowZeroLength = True
Next
DB.TableDefs.Append tble
'Erstellungsdatum der DB:
Set prop = DB.CreateProperty("Datum", dbDate, Date)
DB.Properties.Append prop
DB.Close
CreateMyDataBase = True
End Functioncu
Lordchen |