[SQL] - [Access 2003] Relation 1 à 1

Fermé
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 - 20 août 2008 à 09:43
 choune - 20 janv. 2011 à 15:54
Bonjour,

d'habitude je répond aux question des autres mais là je galère vraiment.

Sur access, il y a la possibilité de créer une relation 1 à plusieurs en reliant mauellement une clé primaire à une clé étrançère. En VBA & SQL, ça donne :
 DoCmd.RunSQL ("ALTER TABLE [Table1] ADD CONSTRAINT [nom_relation]  FOREIGN KEY [ChampsCléEtrangère] REFERENCES [Table2] [ChampsCléPrimaire]")

Mais moi j'aimerais créer une ralation 1 à 1. C'est possible de la faire manuellement cependant j'aimerais le faire en SQL (si c'est possible), du style:
 DoCmd.RunSQL ("ALTER TABLE [Table1] ADD CONSTRAINT [nom_relation] PRIMARY KEY [ChampsCléPrimaire1] REFERENCES [Table2] [ChampsCléPrimaire2]") 
Qui ne fonctionne évidemment pas.
Si vous me demander: "Pourquoi ne mets tu pas tout dans une table", bah c'est une table importée d'un excel donc c'est compliqué.

Merci de pouvoir m'éclairer ;)
A voir également:

3 réponses

Le Pingou Messages postés 12242 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 mars 2025 1 458
20 août 2008 à 16:09
Bonjour,
Juste au passage, est-ce nécessaire d'avoir une différentiation dans les noms des champs primaires [ChampsCléPrimaire1] REFERENCES [Table2] [ChampsCléPrimaire2]")
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
20 août 2008 à 16:45
Arf, dommage qu'on me réponde pas une question ^^ Merci quand même ;)

Non, si tu veux mettre des noms différents ou les mêmes y'a pas de problème du moment qu'ils viennent de deux tables différentes évidement.

Toujours personne pour m'aider?
0
ACCESS est un logiciel qui fait partie de la famille des SGBDR, c'est-à-dire des systèmes de gestion de bases de données relationnelles. La notion de relations est donc essentielle. Bien qu'il existe plusieurs types de relations, ACCESS ne gère que les relations de un à un, et les relations de un à plusieurs.

Pour créer une relation de un à un, il faut impérativement lier des champs ayant leur propriété "indexé" à "oui-sans doublon".

Pour créer une relation de un à plusieurs, il suffit de lier les champs entre eux.

D'habitude, la relation se fait d'une clé primaire vers une clé étrangère.

La clé primaire est le champ de la table qui sert d'identifiant à un enregistrement. Il s'agit d'un champ indexé sans doublon.

La clé étrangère est le champ de la table qui servira à matérialiser la relation avec la clé primaire. Il doit être de même taille et de même type de données que la clé primaire à laquelle il est lié.

NB : Il est possible de créer une clé primaire multi-champs. Cependant, il n'est pas efficace de l'utiliser dans le cadre d'une relation. Une clé primaire multi-champs sert surtout de règle de gestion pour les enregistrements. Elle empeche d'avoir deux enregistrements ayant les mêmes valeurs dans les champs de la clé primaire. On peut obtenir le même résultat avec un index multi-champs, sans qu'il s'agisse d'une clé primaire.
0

Discussions similaires