Relation 1 à 1 non souhaitée
Dans la fenêtre Relations, j’essaie d’établir une relation « 1 à plusieurs » entre deux tables, et Access place systématiquement une relation « 1 à 1« . Pourquoi, donc ?
Solution
Dans la table côté « Plusieurs », vérifiez le champ servant de liaison (la clef étrangère). Il comporte actuellement un index sans doublons, ce qui est incorrect dans une majorité des cas. Remplacez cet index par un index avec doublons (conseillé) ou par aucun index.
Si on y réfléchit deux secondes, le problème du départ est logique : si les doublons sont interdits sur le champ de liaison de la table côté « Plusieurs », toutes les valeurs de ce champ sont différentes. Or c’est le cas aussi des enregistrements de la table côté « 1 ». Ce qui fait qu’on ne peut relier les lignes de tables que une à une.
Exemple
La relation « 1 à plusieurs » ci-dessous se fait correctement parce que…
- la table
tbl Villes
est située du côté « 1 » de la relation (1 ville peut rassembler plusieurs clients) ; - la table
tbl Clients
est donc située du côté « Plusieurs » de la relation ; - le champ
Code Ville
de la tabletbl Villes
est clef primaire (donc nécessairement indexé sans doublons) ; - le champ
Code Ville
de la tabletbl Clients
sert de jonction avec la table des villes. C’est une clef étrangère (généralement indexée avec doublons). Si ce champ était indexé sans doublons, vous forceriez une relation 1:1 entre les deux tables.
La table est visiblement mal foutue : certainement pas
«
T_Matière: N°Matiere; Français; Math; Physique; Anglais; Svt, phylosophie……
»
Mais
T_Matière: N°Matiere; Matiere_Libelle
Et puis cette table sera source de votre liste déroulante.
fanignoro > Vous êtes plusieurs (de la même école, visiblement ;-)) à poser strictement les mêmes questions sur le blog, alors que vos questions s’adressent plutôt au forum.
Merci…
Je devrai malheureusement bloquer les messages du même type à l’avenir, s’ils sont hors charte. Merci de votre compréhension.
Salut à tous
Je crève sur un exercice depuis une 2 mois mais malheureusement je constat que le bout du tunnel est encore loin.
Il s’agit de créer une application sur Access qui doit gérer la vie d’un établissement scolaire.
Je vous donne un aperçu de tables créer
T_Eleves: N°Matricule ; #n°parents, #n°evaluation, NomEleve ; Prenom ; Datede Naissance…
T_Parents: N°Parent, Nom, prenom, fonction, adressepostal, tel, e-mail…..
T_Matière: N°Matiere; Français; Math; Physique; Anglais; Svt, phylosophie……
T_Evaluation: #n°matiere, N° evaluation, DateEvaluation………..
T_DetailEvaluation: #n° evaluation, #n°matiere Type Evaluation(Devoirsurveillé, Interrogationecrite); Note, Cœfficient.
T_DetailTrimestre : #n°classe, #n°Trimestre; CoeficientTrimestre;
T_Trimestre:N°Trimestre, Datedebut rimestre; DateFin Trimestre
T_Classe: N°Classe; 6è; 5è; 4è, 3eme, 2nd, 1ere, Tle, Description, Cycle,
T_DecisionConseilClasse: N°Decision, redouble, Admis, Exclu
T_Bulletin: #n°Decision, #n°conseil
T_ConseildeDiscipline: N°Conseil, absence, retard, sanction, distinction……
Est-ce possible de créer un champ nomdematiere avec une liste déroulente, anglais, svt, physique, mathematique etc… ?
Je besoin d’une aide pour l’analyse et la modélisation
Merci à tous
COORDIALEMENT