vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · ADO   |   VB-Versionen: VB5, VB628.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:   AnGeBewertung:  Views:  40.361 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Nachfolgend soll in kurzen Codeauszügen gezeigt werden, wie man bei Verwendung des ADO-Datenbankzugriffs

  1. eine neue leere Access-Datenbank
  2. neue Tabellen
  3. Felder und Indexfelder
erstellen kann.

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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.