Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Data Definition, Teil 2: Index per DAO hinzufügen

Der 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 DAO

Die 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 Eigenschaften

Nachfolgend finden Sie eine Auflistung gängiger Index-Eigenschaften:

Unique: Eindeutiger Schlüssel
IgnoreNulls: Ignorieren von Nullwerten
Primary: Primärschlüssen, gleichzeitig eindeutiger Schlüssel

© 2003-2015 André Minhorst Alle Rechte vorbehalten.