Clé primaire

abdo78 Messages postés 66 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 27 novembre 2015 - 12 déc. 2011 à 10:26
abdo78 Messages postés 66 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 27 novembre 2015 - 13 déc. 2011 à 12:51
Bonjour,
je programme avec vb , je voulais faire une mis a jour d une table access , pour cela je dois enlever la clé primaire de 2 champ a la fois de cette table et la remette a la fin du mise a jour.
pour l' enlever j 'ai fais cette insruction :DBaseSté.Execute "ALTER TABLE MOUVEMENT DROP CONSTRAINT PrimaryKey et ça marche .
pour la remettre j'ai fais cette insruction :DBaseSté.Execute "ALTER TABLE MOUVEMENT ADD CONSTRAINT PrimaryKey PRIMARY KEY (Matricule,rub)" mais ça marche pas .
merci de votre aide

4 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 déc. 2011 à 11:37
Salut

Je trouve bizarre que tu aies besoin de toucher à ces clés primaires. Pour faire une mise à jour de données dans une table, pas besoin de faire ça.
Explique nous ton contexte, stp

"ça marche pas" n'est qu'une constatation, pas une explication.
Est-ce que la syntaxe SQL que tu te poses des questions ?

Quel type de DB ?
Car dans ce genre de syntaxe, c'est un élément très important puisque les différences de langages SQL se situent principalement dans les commandes liées aux structures.
Pourquoi "CONTRAINT PrimaryKey" ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
abdo78 Messages postés 66 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 27 novembre 2015
12 déc. 2011 à 15:26
la base de donné c est access.
je vous signale que ses pour les tables ou' il y seulement une clé primaire ça marche , le probleme c'est en cous ou' la table a 2 clé primaire , il me renvoi un message d erreur des doublons .
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 déc. 2011 à 16:03
As-tu essayé la même syntaxe mais sans préciser de contrainte ?
Es-tu sûr d'avoir un champ nommé "PrimaryKey" dans ta table ?

Or, dans la syntaxe de CONTRAINT, on ne peut pas ajouter plusieurs index à la fois (voir dans l'aide ou encore ici)

Je te conseille donc de faire deux passes :
- Une première passe pour désigner les clés primaires
- Une seconde passe (ou plus) pour demander l'indexation d'un champ

De mémoire, il me semble que les clés primaires sont, de toute façon, déjà indexées.

Si tu as un message de défaut, merci de nous dire lequel, mot pour mot.
"un message d erreur des doublons" n'est pas suffisant
0
abdo78 Messages postés 66 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 27 novembre 2015
13 déc. 2011 à 12:51
je reformule ma question

comment créer une clé primaire pour 2 champs d'une table access à l'aide du vb (instruction sql)

merci
0