Rubrik: Datenbanken · ADO | VB-Versionen: VB5, VB6 | 28.07.05 |
Datenbanken und Tabellen mit ADOX erstellen (ADO) Dieser Tipp zeigt, wie man beim Verwenden von ADO eine neue Access-Datenbank erstellen kann. | ||
Autor: AnGe | Bewertung: | Views: 40.361 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Nachfolgend soll in kurzen Codeauszügen gezeigt werden, wie man bei Verwendung des ADO-Datenbankzugriffs
- eine neue leere Access-Datenbank
- neue Tabellen
- Felder und Indexfelder
Zunächst müssen aber zunächst einmal folgende Verweise aktiviert werden:
- Microsoft ActiveX Data Objects 2.x Library
- Microsoft ADO Ext. 2.x for DDL and Security
Neue leere Access-Datenbank erstellen
Dim oCat As ADOX.Catalog Dim sConn As String Set oCat = New ADOX.Catalog sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\testmdb.mdb;" ' Falls die Datenbank durch ein Passwort geschützt werden soll... sConn = sConn & "Jet OLEDB:Database Password=geheim;" oCat.Create sConn Set oCat = Nothing
Bestehende Datenbank öffnen
Dim oConn As ADODB.Connection Dim sConn As String Set oConn = New ADODB.Connection sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\testmdb.mdb;" ' Falls die Datenbank durch ein Passwort geschützt ist... sConn = sConn & "Jet OLEDB:Database Password=geheim;" oConn.Open sConn
Neue Tabelle mit diversen Datenbankfeldern erstellen
Dim oCat As ADOX.Catalog Dim oTable As ADOX.Table Dim oIndex As ADOX.Index Set oCat = New ADOX.Catalog oCat.ActiveConnection = oConn Set oTable = New ADOX.Table With oTable ' Name der neuen Tabelle .Name = "Test" ' Catalog festlegen .ParentCatalog = oCat ' Felder definieren und dem Table-Objekt hinzufügen .Columns.Append "Primaerschluessel", adInteger .Columns("Primaerschluessel").Properties("Description") = "Test" ' .Columns.Append "Feld1", adWChar, 60 With .Columns("Feld1") .Properties("Description") = "Feld2" .Properties("Jet OLEDB:Allow Zero Length") = True .Properties("Nullable") = True End With End With ' Table-Objekt dem Catalog-Objekt zuweisen oCat.Tables.Append oTable ' Index Primärschlüssel definieren Set oIndex = New ADOX.Index With oIndex .Name = "PrimarayKey" .Columns.Append "Primaerschluessel" .PrimaryKey = True .Unique = True End With oTable.Indexes.Append oIndex Set oIndex = Nothing ' Objekte zerstören Set oTable = Nothing Set oCat = Nothing
Hinweis zu den Eigenschaften der Tabellenfelder (Properties)
Nachfolgend eine kleine Auflistung der möglichen Eigenschaften:
- Autoincrement
- Default
- Description
- Nullable
- Fixed Length
- Seed
- Increment
- Jet OLEDB:Column Validation Text
- Jet OLEDB:Column Validation Rule
- Jet OLEDB:IISAM Not Last Column
- Jet OLEDB:AutoGenerate
- Jet OLEDB:One BLOB per Page
- Jet OLEDB:Compressed UNICODE Strings
- Jet OLEDB:Allow Zero Length
- Jet OLEDB:Hyperlink
Um einer Tabelle bspw. ein AutoIncrement-Feld zuzufügen, folgenden Code benutzen:
With oTable ... ' AutoIncrement hinzufügen .Columns.Append "AutoNr", adInteger .Columns("AutoNr").Properties("Autoincrement") = True ... End With