Partager via


Index.Primary, propriété (DAO)

S’applique à : Access 2013, Office 2013

Définit ou renvoie une valeur qui indique si un objet Index représente un index de clé primaire pour une table (espaces de travail Microsoft Access uniquement).

Syntaxe

expression . Primaire

Expression Variable qui représente un objet Index .

Remarques

Le paramètre de propriété Primary est en lecture/écriture pour un nouvel objet Index par encore ajouté à une collection et en lecture seule pour un objet Index existant dans une collection Indexes. Si l'objet Index est ajouté à l'objet TableDef mais que l'objet TableDef n'est pas ajouté à la collection TableDefs, la propriété Index est en lecture/écriture.

Un index de clé primaire consiste en un ou plusieurs champs qui identifient de manière unique tous les enregistrements d'une table dans un ordre prédéfini. Étant donné que le champ d'index doit être unique, la propriété Unique de l'objet Index est définie sur True. Si l'index de clé primaire est constitué de plusieurs champs, chaque champ peut contenir des valeurs dupliquées, mais chaque combinaison de valeurs de tous les champs indexés doit être unique. Un index de clé primaire est constitué d'une clé pour la table et renferme généralement les mêmes champs que la clé primaire.

Remarque

[!REMARQUE] La création d'index n'est pas obligatoire pour les tables, mais l'accès à un enregistrement spécifique dans des grandes tables non indexées peut prendre beaucoup de temps. Le attributs propriété de chaque champ objet dans le Index objet détermine la ordre des enregistrements et par conséquent détermine les techniques d’accès à utiliser pour cet index. Lorsque vous créez une nouvelle table dans votre base de données, il est recommandé de créer un index sur un ou plusieurs champs qui identifie chaque enregistrement de manière unique, puis de définir la propriété Primary de l'objet Index sur True.

Lorsque vous définissez une clé primaire pour une table, la clé primaire est automatiquement définie comme index de clé primaire de la table.

Exemple

Cet exemple utilise la propriété Primary pour désigner un nouvel objet Index dans une TableDef comme Index primaire pour cette table. Notez que le fait de définir la propriété Primary sur True définit automatiquement les propriétés Unique et Required sur True.

    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