Data Definition, Teil 2: Index per DAO hinzufügenDer zweite Teil dieser Beitragsreihe beschreibt, wie man einer Tabelle einen Index mit VBA und DAO hinzufügt. Die Beispieltabelle namens tblKontakte soll einen Primärindex sowie einen aus den Feldern Vorname und Nachname bestehenden zusammengesetzten eindeutigen Schlüssel erhalten.
Teil 1: Tabelle per DAO erstellen
Teil 2: Index per DAO hinzufügen

Prozedur zum Hinzufügen von Indizes per DAODie folgende Prozedur sorgt für die Erstellung der gewünschten Indizes. Sie erzeugt zunächst Objektvariablen für die aktuelle Datenbank und die Tabellendefinition der Tabelle tblKontakte.
Anschließend erstellt sie mit der CreateIndex-Methode einen neuen Index für die Tabelle tblKontakte. Der Zuweisung des Namens des Index folgt das Hinzufügen des einzigen Feldes des Index, KontaktID.
Damit der Index eindeutig ist, stellt die Prozedur anschließend die Eigenschaft Primary auf den Wert True ein. Die Append-Methode sorgt schließlich für das Hinzufügen des Index zu der Tabelle tblKontakte.
Ähnliches geschieht zur Erstellung des aus den beiden Feldern Vorname und Nachname zusammengestellten Index. Der einzige Unterschied ist, dass hier die Eigenschaft Unique den Wert True erhält und dass dem Index zwei Felder angehören.
Public Sub IndexErstellen()
Dim db As DAO.Database
Dim tbl As TableDef
Dim idx As Index
On Error GoTo IndexErstellen_Err
Set db = CurrentDb
Set tbl = db.TableDefs("tblKontakte")
Set idx = tbl.CreateIndex
idx.Name = "Primärschlüssel"
idx.Fields.Append idx.CreateField("KontaktID")
'Primärschlüssen und Eindeutig
idx.Primary = True
tbl.Indexes.Append idx
'Eindeutiger zusammengesetzter Schlüssel
Set idx = tbl.CreateIndex
idx.Name = "Zusammengesetzter eindeutiger Schlüssel"
idx.Fields.Append idx.CreateField("Vorname")
idx.Fields.Append idx.CreateField("Nachname")
idx.Unique = True
tbl.Indexes.Append idx
IndexErstellen_Exit:
Set idx = Nothing
Set tbl = Nothing
Set db = Nothing
Exit Sub
IndexErstellen_Err:
If Err.Number = 3284 Then
MsgBox "Der Index ist bereits vorhanden."
Resume Next
Else
MsgBox "Err: " & Err.Number
End If
End Sub Zuweisung weiterer EigenschaftenNachfolgend finden Sie eine Auflistung gängiger Index-Eigenschaften:  | Unique: Eindeutiger Schlüssel
|  | IgnoreNulls: Ignorieren von Nullwerten
|  | Primary: Primärschlüssen, gleichzeitig eindeutiger Schlüssel |
|