Freigeben über


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