Bonjour,

Je cherche à modifier à partir de VBA l'attribut Index = Oui d'un champ de ma table...

Je cherche et je cherche, mais je ne trouve rien...

j'ai trouvé cela:

La procédure pour la création des Index rejoint de près celle de la clé primaire et du coté des noms d'objets, il n'y a pas de différence entre ADO et DAO, il porte toujours le nom Index et appartient toujours à la collection Indexes.

Remarquez que la syntaxe entre les deux méthodes est similaire :
Création d'un index avec DAO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
	''' Création de l'index sur le champ ProductName avec doublon
	Set oIDX = .CreateIndex("IDXProductName")
	With oIDX    
	.Fields.Append .CreateField("ProductName")    
	.Unique = False
	End With
	''' Ajout de l'index à la table
	.Indexes.Append oIDX
Création d'un index avec ADO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
	''' Création de l'index sur le champ ProductName avec doublon
	Set oIDX = New ADOX.Index
	With oIDX    
	.Name = "IDXProductName"    
	.Columns.Append "ProductName"    
	.Unique = FalseEnd With
	''' Ajout de l'index à la table
	.Indexes.Append oIDX
Au même titre que vous affectez la clé primaire à un lot de champs, vous procédez de façon identique pour affecter les index à plusieurs champs...
mais je ne comprend pas pourquoi il y a un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CreateField("ProductName")
???
si je ne veux pas creer de champs moi??


en fait, je ne vois pas ce que l'auteur appelle "IDXProductName" ou "ProductName" ??
quelle et la difference entre les deux??
lequel doit etre le nom de mon champ a moi pour lequel je veux un attribut index???

MERCI