Clé primaire en VbA ou SQL

Fermé
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 26 juil. 2013 à 18:18
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 28 juil. 2013 à 09:52
Bonjour à tous,

ça fait un moment que je n'étais pas passée par là...

Je coince sur un truc dans Access.
Je génère des tables avec une requête toute bête de création de table, mais comment faire pour définir la clé primaire de ces tables autrement que manuellement? Dans l'idéal je voudrais que l'utilisateur n'ait qu'à cliquer sur un bouton pour que les tables se génèrent (dans une autre base, de fait) et que leur clé leur soit attribuée.

Ça me paraissait tout bête, mais je ne trouve pas la solution...

Est ce que dans le SQL on peut écrire ça, et où?

Pour le moment ça fait:
SELECT Contacts.* INTO Contacts IN 'C:\Base de donnees\DonnéesCommA.accdb'
FROM Sociétés INNER JOIN Contacts ON Sociétés.NClient = Contacts.NClient
WHERE (((Sociétés.COMMERCIAL)="A"));
A voir également:

5 réponses

f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
27 juil. 2013 à 08:37
Bonjour,

http://cerig.pagora.grenoble-inp.fr//tutoriel/bases-de-donnees/chap18.htm


Pour poser une clé primaire sur un champ, nous utilisons la clause PRIMARY KEY, comme le montre l'exemple suivant :

CREATE TABLE Personnes
(Nom CHAR(20) PRIMARY KEY,
Prénom CHAR(20));

A voir
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
27 juil. 2013 à 17:24
Bonjour, et merci à toi, mais c'est vrai que ma question n'était pas assez bien posée, peut-être:

Pour le moment la table est créée à partir de données existant dans la base, mais il est tout à fait envisageable que par la suite elles viennent d'ailleurs, import d'un logiciel externe, copier coller d'Excel, que sais-je.

Donc en fait ce que je voudrais, c'est transformer un champ existant, et contenant déjà des données (dont je suis sûre à 100% qu'elles seront uniques), en clé primaire.

Est ce faisable? Et même si la table se trouve dans une base autre que celle à partir de laquelle sera appelée la procédure???

Merci mille fois de ta réponse, si tu peux m'aiguiller...
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
27 juil. 2013 à 17:30
Je précise, ensuite j'ai suivi ton lien, et au paragraphe 8 j'ai bien trouvé le ALTER TABLE / ADD PRIMARY KEY, mais comment le faire sur une table attachée???

En tout mille mercis pour ton aide. Et si c'est impossible, ce que je demande, et bien... Je le ferai manuellement, ça n'est pas une manip qu'on fera tous les jours non plus. Mais j'ai peur que l'utilisateur final oublie...
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
28 juil. 2013 à 08:51
Bonjour,

Toujours en partant du tuto, a essayer:

Dans un troisième temps, nous modifions la table "Villes" en plaçant une clé primaire sur le champ "Code_Ville", qui servira de côté 1 à la future relation. Pour ce faire, nous exécutons la commande suivante :
ALTER TABLE Villes
ADD CONSTRAINT clé_primaire PRIMARY KEY(Code_Ville);

et

Dans un quatrième temps, nous modifions la table "Personnes" en plaçant une clé étrangère, nommée "relation_ville", sur le champ "Code_Ville" de la table "Personnes" (on parle de clé étrangère pour le côté n de la relation), en précisant que le côté 1 de la relation est le champ "Code_Ville" de la table "Villes". Nous exécutons donc la commande suivante :
ALTER TABLE Personnes
ADD CONSTRAINT relation_ville FOREIGN KEY (Code_Ville) REFERENCES Villes (Code_Ville);

A voir, je n'ai pas mieux pour le moment.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
28 juil. 2013 à 09:52
Merci en tout cas, je teste et je te dis.

0