Index.Primary-Eigenschaft (DAO)
Gilt für: Access 2013, Office 2013
Legt einen Wert fest, der angibt, ob ein Index -Objekt einen Primärschlüsselindex für eine Tabelle darstellt, oder gibt den betreffenden Wert zurück (nur Microsoft Access-Arbeitsbereiche).
Syntax
Ausdruck . Primäre
Ausdruck Eine Variable, die ein Index-Objekt darstellt.
Hinweise
Die Einstellung der Primary-Eigenschaft ist lese-/schreibgeschützt für ein neues Index-Objekt , das noch nicht an eine Auflistung angefügt wurde, und schreibgeschützt für ein vorhandenes Index-Objekt in einer Indexes-Auflistung . Wenn das Index-Objekt an das TableDef-Objekt angefügt wird, das TableDef-Objekt aber nicht an die TableDefs-Auflistung angefügt wird, hat die Index-Eigenschaft Lese-/Schreibzugriff.
Ein Primärschlüsselindex besteht aus einem oder mehreren Feldern, die alle Datensätze in einer Tabelle in einer vordefinierten Reihenfolge eindeutig identifizieren. Da das Indexfeld eindeutig sein muss, wird die Unique-Eigenschaft des Index-Objekts auf True festgelegt. Wenn der Primärschlüsselindex aus mehr als einem Feld besteht, kann jedes Feld doppelte Werte enthalten, aber jede Kombination von Werten aus allen indizierten Feldern muss eindeutig sein. Ein Primärschlüsselindex besteht aus einem Schlüssel für die Tabelle und enthält in der Regel dieselben Felder wie der Primärschlüssel.
Hinweis
[!HINWEIS] Sie müssen keine Indizes für Tabellen erstellen, doch in großen, nicht-indizierten Tabellen kann der Zugriff auf einen Datensatz einige Zeit in Anspruch nehmen. Die Attributes-Eigenschaft jedes Field-Objekts im Index-Objekt bestimmt die Reihenfolge der Datensätze und folglich die geeigneten Methoden zum Zugreifen auf diesen Index. Wenn Sie in Ihrer Datenbank eine neue Tabelle erstellen, sollten Sie einen Index mit einem oder mehreren Feldern erstellen, der jeden Datensatz eindeutig identifiziert, und anschließend die Primary-Eigenschaft des Index-Objekts auf True festlegen.
Wenn Sie einen Primärschlüssel für eine Tabelle festlegen, wird der Primärschlüssel automatisch als Primärschlüsselindex für die Tabelle definiert.
Beispiel
In diesem Beispiel wird mithilfe der Primary-Eigenschaft ein neues Index-Objekt in einem neuen TableDef-Objekt als primärer Index für die Tabelle festgelegt. Beachten Sie, dass beim Festlegen der Primary-Eigenschaft auf True die Eigenschaften Unique und Required automatisch auf True gesetzt werden.
Sub PrimaryX()
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim idxNew As Index
Dim idxLoop As Index
Dim fldLoop As Field
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Create and append a new TableDef object to the
' TableDefs collection of the Northwind database.
Set tdfNew = dbsNorthwind.CreateTableDef("NewTable")
tdfNew.Fields.Append tdfNew.CreateField("NumField", _
dbLong, 20)
tdfNew.Fields.Append tdfNew.CreateField("TextField", _
dbText, 20)
dbsNorthwind.TableDefs.Append tdfNew
With tdfNew
' Create and append a new Index object to the
' Indexes collection of the new TableDef object.
Set idxNew = .CreateIndex("NumIndex")
idxNew.Fields.Append idxNew.CreateField("NumField")
idxNew.Primary = True
.Indexes.Append idxNew
Set idxNew = .CreateIndex("TextIndex")
idxNew.Fields.Append idxNew.CreateField("TextField")
.Indexes.Append idxNew
Debug.Print .Indexes.Count & " Indexes in " & _
.Name & " TableDef"
' Enumerate Indexes collection.
For Each idxLoop In .Indexes
With idxLoop
Debug.Print " " & .Name
' Enumerate Fields collection of each Index
' object.
Debug.Print " Fields"
For Each fldLoop In .Fields
Debug.Print " " & fldLoop.Name
Next fldLoop
' Enumerate Properties collection of each
' Index object.
Debug.Print " Properties"
For Each prpLoop In .Properties
Debug.Print " " & prpLoop.Name & _
" = " & IIf(prpLoop = "", "[empty]", _
prpLoop)
Next prpLoop
End With
Next idxLoop
End With
dbsNorthwind.TableDefs.Delete tdfNew.Name
dbsNorthwind.Close
End Sub