|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 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 |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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) - - 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) - - Fonction - .... 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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 407 ![]() |
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. |
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Peux-tu décrire le problème que tu constates ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#18 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Pascale VASNIER Inscription : avril 2010 Messages : 43 ![]() |
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 |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Momoju,
Il faut :
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. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com