Clé primaire

Signaler
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015
-
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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)
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015

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 .
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015

je reformule ma question

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

merci