ADOx kann man vom Namen her leicht mit ADO verwechseln. Sieht man sich allerdings den vollen Namen statt der Abkürzung an, erfährt man, dass es sich um eine Erweiterung der Active Data Objects handelt: Das x steht nämlich für Extended, zu deutsch: erweitert. Während die Active Data Objects die Objekte zum Zugriff auf die Daten einer Datenbank liefern, beschäftigt sich ADOx mit dem Erstellen der Datenbank sowie der Objekte der Datenbank.
Active Data Objects Extensions for Data Definition Language and Security lautet die genaue ausgeschriebene Variante von ADOx. Und damit ist auch schon ziemlich genau umrissen, worum es sich dabei handelt: eine Erweiterung der Active Data Objects um die Objekte, die zum Definieren der Datenbank und ihres Zugriffsschutzes dienen.
Während Sie im Beitrag Datenbankzugriff mit ADO (UPDATE-Heft Nr.1/Januar 2001) einiges über ADO erfahren haben, lernen Sie im vorliegenden Beitrag, wie Sie mit Hilfe der Erweiterung ADOx eine Datenbank erstellen und das Aussehen des Datenmodells definieren.
Bevor Sie auf die ADOx-Objekte und deren Methoden, Eigenschaften und Ereignisse zugreifen können, müssen Sie zunächst für deren Verfügbarkeit sorgen.
Am besten legen Sie zunächst eine neue Datenbank an, mit der Sie die folgenden Beispiele nachvollziehen können.
Legen Sie anschließend ein neues Modul an. Wechseln Sie dazu im Datenbankfenster in das Register Module und klicken Sie auf die Schaltfläche Neu. Access öffnet nun automatisch den Visual Basic-Editor und zeigt den Inhalt des neuen Moduls an.
Im Visual Basic-Editor sorgen Sie auch dafür, dass Access die ADOx-Bibliothek für die aktuelle Datenbank verfügbar macht. Gehen Sie folgendermaßen vor:
- Wählen Sie den Menübefehl Extras ( Verweise aus.
- Im nun erscheinenden Dialog wählen Sie den Eintrag Microsoft ADO Ext. 2.5 for DDL and Security aus (siehe Bild 1).
Bild 1: Auswahl der benötigten Verweise
Nun können Sie auf die Objekte zur Definition der Datenstruktur und der Zugriffsrechte zugreifen.
Das Erstellen einer Datenbank ist wahrscheinlich eine der weniger häufig verwendeten Aktionen von ADOx. Dennoch soll sie hier kurz anhand eines Beispiels erläutert werden.
Bild 2: Das Catalog-Objekt enthält einige weitere Objekte.
Das Catalog-Objekt von ADOx
Das übergeordnete Objekt des ADOx-Modells ist das Catalog-Objekt. Das Catalog-Objekt repräsentiert bei allen Aktionen, die Sie mit ADOx durchführen, die Datenbank. Das gilt sowohl für das Erstellen der Datenbank als auch für die spätere Bearbeitung der Datenbankstruktur und der Zugriffsrechte.
Das Objektmodell von ADOx hat fünf Objekte, die unmittelbar unter dem Catalog-Objekt liegen (siehe Bild 2). Neben den beiden Objekten Groups und Users, mit denen man Gruppen- und Benutzerrechte festlegen kann, und den Objekten Procedures und Views gibt es noch das Table-Objekt, mit dem man Tabellen erstellen und ihre Eigenschaften festlegen kann.
Deklarieren des Catalog-Objektes mit ADOx
Die Definition eines Catalog-Objektes erfolgt mit der folgenden Anweisung:
Dim cat As ADOX.Catalog
Erstellen der neuen Datenbank mit ADOx
Die neue Datenbank erstellen Sie anschließend mit der Create-Methode des soeben deklarierten Catalog-Objektes. Dazu erfolgen drei Schritte:
- Setzen einer neuen Catalog-Objektvariablen
- Erstellen der Datenbank mit bestimmten Eigenschaften
- Löschen der Objektvariablen
Das genaue Aussehen einer Prozedur zum Erstellen einer neuen Datenbank finden Sie in Quellcode 1. Bei der Zeichenkette hinter dem Befehl cat.Create handelt es sich um einen Connection-String. Der Connection-String beinhaltet Informationen über die Beschaffenheit der zu erstellenden Datenbank. Dazu gehört – wie im Beispiel zu sehen – die Angabe eines Datenbanktreibers und eines Speicherortes für die Datenbank.
Sie können noch weitere Informationen eingeben, die bei der Erstellung der Datenbank Verwendung finden sollen.
Setzen eines Passworts mit ADOx
Wenn die Datenbank beim öffnen ein Passwort abfragen soll, hängen Sie beispielsweise den folgenden String an den bestehenden Connection-String an:
Jet OLEDB:Database Password=Testpasswort
Bild 3: Abfrage des Datenbankkennworts
Wenn Sie die erstellte Datenbank nun öffnen, erscheint eine entsprechende Passwortabfrage (siehe Bild 3).
Weitere Optionen beim Erstellen einer neuen Datenbank
Neben dem Anlegen einer Datenbank mit Passwort gibt es noch weitere Optionen beim Anlegen einer neuen Datenbank:
- Anlegen einer neuen Systemdatenbank
- Angabe einer Systemdatenbank
- Angabe eines Benutzers mit Passwort, der zum Besitzer der neuen Datenbank wird
- Anlegen neuer Datenbanken in Fremdformaten, beispielsweise älteren Access-Versionen, dBase, Lotus, Paradox usw.
- Da die meisten Optionen mit dem Sicherheitssystem von Access in Zusammenhang stehen, soll hier nicht weiter darauf eingegangen werden.
Bevor Sie eine neue Tabelle in einer Datenbank erstellen können, müssen Sie mit einer Catalog-Objektvariablen die Datenbank festlegen, in der Sie die neue Tabelle erstellen möchten.
Festlegen einer Datenbank
Dazu gibt es zwei Möglichkeiten: Entweder Sie erstellen im gleichen Zuge mit der Zuweisung der Variablen eine neue Datenbank, wie Sie es im vorherigen Kapitel gelernt haben, oder Sie legen eine Verbindung zu einer bestehenden Datenbank fest.
Verwenden einer externen Datenbank
Dazu können Sie ruhig die Datenbank verwenden, die Sie im Beispiel des vorhergehenden Kapitels angelegt haben. Dazu verwenden Sie die Prozedur aus Quellcode 2.
Verwenden der aktuellen Datenbank
Alternativ können Sie natürlich auch die aktuelle Datenbank verwenden. Dazu müssen Sie lediglich die Anweisung zum Festlegen der Verbindung aus Quellcode 2 in den die folgende Anweisung ändern:
cat.ActiveConnection = Application._CurrentProject.Connection
Das Table-Objekt von ADOx
Das Table-Objekt stellt alle Methoden, Eigenschaften und Ereignisse zur Erstellung von Tabellen und zur Definition ihrer Eigenschaften zur Verfügung (siehe Bild 4).
Bild 4: Die Tables-Auflistung und untergeordnete Auflistungen
Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie …
Neue Tabelle erstellen mit ADOx
Um eine neue Tabelle zu erstellen, müssen Sie zunächst einmal eine entsprechende Objektvariable deklarieren:
Dim tbl As ADOX.Table
Anschließend setzen Sie die Objektvariable:
Set tbl = New ADOX.Table
Nun statten Sie die Tabelle mit den wichtigsten Eigenschaften aus – einem Namen und einigen Feldern.
Zum Festlegen eines Tabellennamens verwenden Sie die Name-Eigenschaft des Table-Objektes in der folgenden Form:
tbl.Name = "tblNeueTabelle"
Anschließend legen Sie zwei Felder in der neuen Tabelle an. Dazu verwenden Sie die Append-Methode. Die Append-Methode ist eine Methode der Columns-Auflistung des Table-Objektes. Sie hat drei Parameter, die in Tab. 1 beschrieben werden.
Um beispielsweise ein Textfeld mit der Feldgröße 50 an die Tabelle anzufügen, verwenden Sie die folgende Anweisung:
tbl.Columns.Append "Text", adChar, 50
Dabei ist Text der Name des zu erstellenden Feldes, adChar die Konstante für den Datentyp Text und die Zahl 50 die Größe des Feldes.
In Tab. 2 finden Sie eine Auflistung der Konstanten, die den geläufigen Access-Datentypen entsprechen. Sie enthält die Namen der unterschiedlichen Konstanten sowie eine Beschreibung des Datentyps.
Parameter |
Beschreibung |
Column |
Gibt den Namen des anzufügenden Feldes an. |
Type |
Gibt den Typ des anzufügenden Feldes an. Die wichtigsten Werte fasst Tab. 2 zusammen. |
Defined Size |
Gibt die Größe des anzufügenden Feldes an. |
Tab. 1: Parameter der Append-Methode der Columns-Auflistung eines Table-Objektes
Konstante |
Beschreibung |
adInteger |
Long Integer |
adSingle |
Single |
adDouble |
Double |
adCurrency |
Währung |
adBoolean |
Ja/Nein |
adDate |
Datum/Uhrzeit |
adVarWChar |
Text |
adBinary |
Binär |
adGuid Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ... den kompletten Artikel im PDF-Format mit Beispieldatenbank diesen und alle anderen Artikel mit dem Jahresabo |