BEISPIEL
BEISPIEL
BEISPIEL
Kapitel 9: Fortgeschrittene Datenbankprogrammierung
Datumsfeld erstellen (Standardwert: Tagesdatum, Datum muss zwischen 1.1.1995 und 1.1.2007 liegen, sonst
Fehlermeldung):
...
tbl.Columns.Append "Datum", adDate
tbl.Columns("Datum").Properties("Jet OLEDB:Column Validation Rule") = _
"Between #1/1/1995# and #1/1/2007#"
tbl.Columns("Datum").Properties("Jet OLEDB:Column Validation Text") = "Falsches Datum"
tbl.Columns("Datum").Properties("Default") = "=Date()"
...
Die Sortierfolge einer Tabellenspalte legen Sie mit der SortOrder-Eigenschaft fest.
Konstante Beschreibung
adSortAscending (Standard) Der Index wird in aufsteigender Reihenfolge sortiert (1, 2, 3 ...).
adSortDescending Die Sortierreihenfolge des Index wird umgekehrt (9, 8, 7, ...).
Tabelle 9.6 Werte für die SortOrder-Eigenschaft
Umkehren der Sortierfolge:
...
tbl.Columns.Append "Id", adInteger
tbl.Columns("Id").Properties("AutoIncrement") = True
tbl.Columns("Id").SortOrder = adSortDescending
...
Indexdefinition
Neben der reinen Felddefinition sind auch die Indizes von Bedeutung. Grundsätzlich müssen Sie den Index
an ein bestehendes und initialisiertes Table-Objekt anhängen. Dazu verwenden Sie die Indexes-Auflistung.
Indexdefinition für das Feld
Nachname.
Dim cat As New ADOX.Catalog
Dim tbl As New Table
Dim idx As New Index
cat.Create ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Kunden.accdb;")
tbl.Name = "Kundenstammdaten"
tbl.Columns.Append "Nachname", adVarWChar, 50
idx.Name = "Nachname"
idx.Columns.Append "Nachname"
tbl.Indexes.Append idx
...
cat.Tables.Append tbl
518
BEISPIEL
BEISPIEL
HINWEIS
Mit der Type-Eigenschaft beeinflussen Sie die Art des Index:
Konstante Beschreibung
adKeyPrimary Primärschlüssel (Hauptschlüssel)
adKeyForeign Fremdschlüssel
adKeyUnique Der Schlüssel schließt doppelte Werte aus.
Tabelle 9.7 Werte für die Type-Eigenschaft
Erzeugen eines Primärindex:
Dim cat As New ADOX.Catalog
Dim tbl As New Table
Dim idx As New Index
...
tbl.Columns.Append "Id", adInteger
tbl.Columns("Id").Properties("AutoIncrement") = True
idx.Name = "PrimaryKey"
idx.PrimaryKey = True
idx.Columns.Append "Id"
tbl.Indexes.Append idx
...
cat.Tables.Append tbl
Erzeugen eines eindeutigen, zusammengesetzten Index:
tbl.Columns.Append "Nachname", adVarWChar, 50
tbl.Columns.Append "Vorname", adVarWChar, 50
idx.Name = "NachnameVorname"
idx.Unique = True
idx.Columns.Append "Nachname"
idx.Columns.Append "Vorname"
tbl.Indexes.Append idx
Mit der Eigenschaft IndexNulls beeinflussen Sie die Art, wie sich die Indizes in Bezug auf NULL-Werte in
den Tabellen verhalten:
Konstante Beschreibung
adIndexNullsDisallow
(Standard)
NULL-Werte in Indexspalten sind nicht zulässig und werden mit einem Fehler quittiert.
adIndexNullsIgnore Datensätze, die NULL-Werte in Indexspalten enthalten, werden nicht in den Index aufgenommen. Eine
Fehlermeldung wird nicht ausgelöst.
adIndexNullsIgnoreAny Wie adIndexNullsIgnore, allerdings gilt diese Option auch für mehrspaltige Indizes.
Tabelle 9.8 Werte für die IndexNulls-Eigenschaft
Diese Eigenschaft können Sie nur ändern, bevor Sie das Index-Objekt an eine Auflistung anhängen.
519
Datenbankverwaltung mit ADOX

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.