Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2010, 14h29   #1
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Par défaut problème table jointure

Bonjour à toutes et à tous
Cela fait deux jours que je galère… j’ai consulté sur le net des infos concernant les relations de n à n, les tables de jointures… et je n’arrive pas à solutionner mon problème. Pourriez-vous m’aider svp

Je créé une base de données contacts associations

Un contact peut intervenir dans plusieurs associations et une association peut avoir plusieurs contacts

Un contact peut avoir plusieurs fonctions dans différentes associations et une fonction peut être attribuée à plusieurs contacts.

J’ai donc créé les tables suivantes :

TblAssociation
IDAssociation
NomAssociation
Adresse
….

TblContact
IDContact
IDAssociation
NomContact
PrenomContact
….
TblFonctionContact
IDFonctionContact
IDContact
Fonction
Mail

Tables de jointures :

TblLienAssociationContact
IDContact
IDAssociation


TblLienContactFonction
IDContact
IDFonctionContact


J’ai réussi à créé le formulaire « Association et Contact » : FrmAssociation et sous-formulaire Contact + sous formulaire fonction

Là où je rencontre un problème c’est pour le formulaire « Contact et association » : FrmContact et sous formulaire Association et Fonction

Dans ce sous formulaire je souhaiterais afficher les noms des associations et la fonction qui correspondent au contact.

Si le contact est présent dans plusieurs associations cela afficher le même contact sur plusieurs fiches.

J’espère avoir été claire.
Un grand merci pour votre aide
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 15h12   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour momoju,

Il me semble qu'il y a quelques erreurs de conception.

Rectification de tes tables :

TblAssociation
- IDAssociation (num auto, clé primaire)
- NomAssociation
- Adresse
….

TblContact
- IDContact (num auto, clé primaire)
- IDAssociation (en effet, la jointure se fait par la table de jointure)
- NomContact
- PrenomContact
- Mail (en effet, le mail semble être au niveau du contact et non de la fonction, à moins qu'il y ait un mail différent par fonction du contact)
….

TblFonctionContact
- IDFonctionContact (num auto, clé primaire)
- IDContact (en effet, la jointure se fait par la table de jointure)
- Fonction
- Mail (en effet, le mail semble être au niveau du contact et non de la fonction, à moins qu'il y ait un mail différent par fonction du contact)
....


Tables de jointures :

TblLienAssociationContact
- IDContact
- IDAssociation
==> clé primaire IDContact / IDAssociation ;
==> relation TblContact 1--->N TblLienAssociationContact via IDContact ;
==> relation TblAssociation 1--->N TblLienAssociationContact, via IDAssociation.

TblLienContactFonction
- IDContact
- IDFonctionContact
==> clé primaire IDContact / IDFonctionContact ;
==> relation TblContact 1--->N TblLienContactFonction via IDContact ;
==> relation TblFonctionContact 1--->N TblLienContactFonction, via IDFonctionContact.

Dans la fenêtre "Relations", les cardinalités (1--->N) devraient t'être proposées comme indiqué.

Dans ta première analyse, le fait d'avoir IDAssociation dans la table TblContact veut dire qu'un contact ne peut être QUE dans une seule association. Pareil pour IDContact dans la table TblFonctionContact qui veut dire que une fonction ne peut être occupée QUE par un seul contact.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 17h03   #3
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Par défaut problème table jointure

Merci beaucoup pour ta réponse

J'ai effectué les modifications. Je n'arrive toujours pas à afficher pour un contact la liste des associations auxquelles il appartient.

Dans ma table contact les noms sont en double voir en triple. J'en perds mon latin....

Je pense mal utiliser les tables de jointure pour réaliser mes formulaires et sous-formulaires

je ne vois toujours pas où sont mes erreurs. Merci
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 17h34   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Je me rends compte que j'ai commis une erreur pour la table de jonction (modifications en italique/souligné).

TblLienContactFonction
- IDContact
- IDAssociation
- IDFonctionContact
==> clé primaire IDContact / IDAssociation / IDFonctionContact ;
==> peut-être, index unique IDAssociation / IDFonctionContact, si tu ne veux pas qu'il y ait plusieurs fonctions identiques pour une même association (2 trésoriers, par exemple) ;
==> relation TblContact 1--->N TblLienContactFonction via IDContact ;
==> relation TblAssociation 1--->N TblLienContactFonction via IDAssociation ;
==> relation TblFonctionContact 1--->N TblLienContactFonction, via IDFonctionContact.

En effet, un contact à une fonction pour une association donnée, ce que ne gérait pas la table de jonction initiale (le couple Contact/Fonction étant unique).

Une autre question : passes-tu par les assistants pour générer tes sous-formulaires ou traites-tu cela dans VBA ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 17h52   #5
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Par défaut problème table jointure

Encore merci,

Après modification :

Plus de doublons dans la table contact

par contre je ne peux toujours pas afficher 1 contact et ses associations ou une association et ses contacts.

Je créé mes formulaires via l'assistant peut-être des erreurs dans les requêtes qui permettent de créer les frm et sfrm.

Merci encore
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 18h06   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
par contre je ne peux toujours pas afficher 1 contact et ses associations ou une association et ses contacts.
Il n'y a aucune raison pour que tu ne puisses pas le faire !

Requête R1 :
Table TblContact liée à TblLienContactFonction via Id_contact ;
Table TblLienContactFonction liée à TblAssociation via Id_association ;
Table TblLienContactFonction liée à TblFonctionContact via Id_fonction.
==> te donne la liste des associations pour les contacts avec leur fonction dans cette association.

Requête R2 :
Table TblAssociation liée à TblLienContactFonction via Id_association ;
Table TblLienContactFonction liée à TblContact via Id_contact ;
Table TblLienContactFonction liée à TblFonctionContact via Id_fonction.
==> te donne la liste des contacts pour les associations avec leur fonction dans cette association.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 18h41   #7
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Par défaut problème table jointure

Je suis désolée mais malgré les 2 requêtes je rencontre les mêmes probèmes. Je me permets de vous joindre mon fichier au cas où.

encore merci
Fichiers attachés
Type de fichier : rar ADMINISTRATEUR.rar (135,4 Ko, 9 affichages)
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 19h08   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
En premier lieu, tu n'as pas besoin de la table TblLien_contactAssociation car tu as la table TblLienContactFonction qui gère le triplé IDContact/IDFonctionContact/IDAssociation. Il n'est donc pas nécessaire de gérer le couple IDContact/IDAssociation.

En effet, un contact est lié à une association avec une fonction déterminée.

Je regarde ton .mdb un peu plus tard.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 19h16   #9
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 407
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 407
Points : 4 434
Points : 4 434
bonsoir,

est-ce que les règles de gestions s'opposent à un schéma plus simple, comme:

?

Un contact dans une association peut exercer plusieurs fonctions.
Un contact peut exercer la même fonction dans plusieurs associations.
Dans une association, une même fonction peut être exercée par plusieurs contacts.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 19h37   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonsoir F-leb,

Nous sommes d'accord, donc : sauf erreur, c'est exactement le schéma indiqué, une fois la table TblLien_contactAssociation supprimée.

Tu as renomé la table TblLienContactFonction en Intervenir : pourquoi pas.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 20h55   #11
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Dans TblLienContactFonction Sous-formulaire, indiques Requête1 en source de données.

Dans TblLienContactFonction Sous-formulaire1, indiques Requête2 en source de données.

Après cela, tout baigne.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 20h57   #12
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Par défaut problème table jointure

bonsoir et merci,

Je vous avoue être légèrement perdue. J'ai modifiée mes tables comme indiqué. Je n'ai plus la liste déroulante pour la fonction et je me perds dans les requêtes 1 et 2 car j'ai toujours le même problème. suis-je fatiguée ?

encore un grand merci à vous deux
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 20h59   #13
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Peux-tu décrire le problème que tu constates ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 21h08   #14
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Dans le formulaire Association

plus de liste déroulante pour la fonction

sous-formulaire contact si je mets deux fois le même contact pour des asso différentes ce contact n'a pas le même numéro

Dans le formulaire contact

j'ai toujours les doublons si contact dans plusieurs asso alors autant de fiches que de contact.

Je ne suis pas sûres d'avoir bien fait mes requêtes 1 et 2.....

encore merci
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 21h24   #15
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Une chose que je n'avais pas vu : la table TblFonctionContact ne sert à rien. C'est la table TblLienContactFonction qui gère le triplé (F-leb l'avait bien vu).

Donc :
- supprimes TblFonctionContact ;
- vides tes tables ;
- refait la relation entre TblListeFonction et TblLienContactFonction avec intégrité référentielle ;
- refait les 4 formulaires.
==> cela devrait rouler.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 22h05   #16
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
merci, j'essaie de mettre tout cela en application et reviens vers toi demain je ne vais pas abuser de ton temps car il est tard

encore merci
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 22h22   #17
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Voilà j'ai fait les modifs et j'ai toujours le même problème.

Je te joins le fichier modifié

encore merci et bonne soirée
Fichiers attachés
Type de fichier : rar ADMINISTRATEUR.rar (124,2 Ko, 2 affichages)
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 23h16   #18
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Ta base modifiée.
Requêtes xxxx_a.

Formulaire instantané sur xx1_a => liste déroulante OK
Formulaire instantané sur xx2_a => liste déroulante OK

Tu avais une table en trop.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 08h58   #19
Invité régulier
 
Pascale VASNIER
Inscription : avril 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Pascale VASNIER

Informations forums :
Inscription : avril 2010
Messages : 43
Points : 6
Points : 6
Bonjour,

Merci beaucoup pour ton aide. Il y a un petit souci dans le formulaire TblassociationPartenaire, lorsque j'utilise la liste déroulante pour les fonctions j'ai le message suivant : "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement est requis dans la table TblListeFonction

encore merci
momoju est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h30   #20
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Momoju,

Il faut :
  1. que tu vérifies toutes les listes déroulantes que tu as paramétrées au niveau de toutes tes tables ;
  2. indiquer IDContact/IDFonctionContact/IDAssociation en clé primaire de TblLienContactFonction ;
  3. paramétrer tous les champs de TblLienContactFonction en liste déroulante sur la bonne table.

Dans le formulaire généré par la requête globale, les derniers champs de fonction ne sont pas les champs de la table de jointure, mais ceux de la table de base.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h43.


 
 
 
 
Partenaires

Hébergement Web