Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013, Office 2013
Définit ou renvoie une valeur qui indique si un objet Index représente un index (une clé) unique d'une table (espaces de travail Microsoft Access uniquement).
Syntaxe
expression . Unique
Expression Variable qui représente un objet Index .
Remarques
Cette propriété est en lecture/écriture jusqu'à ce que l'objet soit ajouté à une collection ; elle passe alors en lecture seule.
Un index unique est constitué d'un ou de plusieurs champs qui organisent de manière logique tous les enregistrements d'une table dans un ordre unique et prédéfini. Si l'index est constitué d'un seul champ, les valeurs de ce dernier doivent être uniques pour la table entière. Si l'index est constitué de plus d'un champ, chacun de ces champs peut contenir des valeurs en double, mais chaque combinaison de valeurs de tous les champs indexés doit être unique.
Si les propriétés Unique et Primary d'un objet Index ont toutes les deux la valeur True, l'index est unique et primaire : il identifie de manière unique tous les enregistrements de la table dans un ordre logique et prédéfini. Si la propriété Primary a la valeur False, l'index est de type secondaire. Les index secondaires (clés et non clés) organisent les enregistrements de manière logique dans un ordre prédéfini sans servir d'identificateur pour les enregistrements de la table.
Remarque
- Vous n'êtes pas obligé de créer des index pour les tables mais sachez que, dans les grandes tables non indexées, l'accès à un enregistrement spécifique risque de prendre beaucoup de temps.
- Les enregistrements extraits de tables non indexées sont renvoyés sans ordre particulier.
- La propriété Attributes de chaque objet Field dans l'objet Index détermine l'ordre des enregistrements et donc les techniques d'accès à utiliser pour cet objet Index.
- Un index unique vous permet d’optimiser la recherche des enregistrements.
- Les index n’affectent pas l’ordre physique d’une table de base ; les index affectent uniquement la façon dont les enregistrements sont accessibles par l’objet Recordset de type table lorsqu’un index particulier est choisi ou lorsque le moteur de base de données Microsoft Access crée des objets Recordset .
Exemple
Cet exemple attribue la valeur True à la propriété Unique d'un nouvel objet Index et ajoute l'index à la collection Indexes de la table Employees. Il énumère ensuite la collection Indexes de l'objet TableDef et la collection Properties de chaque Index. Le nouvel objet Index n'acceptera qu'un seul enregistrement avec une combinaison donnée de Country (pays), LastName (nom) et FirstName (prénom) dans l'objet TableDef.
Sub UniqueX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim idxNew As Index
Dim idxLoop As Index
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind!Employees
With tdfEmployees
' Create and append new Index object to the Indexes
' collection of the Employees table.
Set idxNew = .CreateIndex("NewIndex")
With idxNew
.Fields.Append .CreateField("Country")
.Fields.Append .CreateField("LastName")
.Fields.Append .CreateField("FirstName")
.Unique = True
End With
.Indexes.Append idxNew
.Indexes.Refresh
Debug.Print .Indexes.Count & " Indexes in " & _
.Name & " TableDef"
' Enumerate Indexes collection of Employees table.
For Each idxLoop In .Indexes
Debug.Print " " & idxLoop.Name
' Enumerate Properties collection of each Index
' object.
For Each prpLoop In idxLoop.Properties
Debug.Print " " & prpLoop.Name & _
" = " & IIf(prpLoop = "", "[empty]", prpLoop)
Next prpLoop
Next idxLoop
' Delete new Index because this is a demonstration.
.Indexes.Delete idxNew.Name
End With
dbsNorthwind.Close
End Sub