|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Bonjour,
Dans le cadre de mon projet en entreprise, je dois créer une base de données sous Access qui permettra aux utilisateurs de suivre leur activité et de gérer le stock de toutes les pièces qu'ils recevront en fonction de leur(s) service(s) d'affectation. J'ai donc créé plusieurs tables. Un utilisateur pouvant appartenir à au plus deux services et un service pouvant contenir un ou plusieurs utilisateurs, il existe donc une relation plusieurs à plusieurs entre les tables Services et Utilisateurs. Pour effectuer cette relation, j'ai créé une table de jointure ServUtilisateurs. Structure des tables : Utilisateurs (#IdUtilisateur, Nom, Prenom) Services (#IdService, NomService) ServUtilisateurs(#IdUtilisateur, #IdService) Mon problème est le suivant, je voudrais pouvoir créer un formlaire qui permettra d'affecter le ou les service(s) à un utilisateur en me basant sur les tables créées. J'ai essayé plusieurs techniques : - Formulaire principal -> table Utilisateurs et sous-formulaire -> Table de jointure mais je veux avoir le libellé du service et non l'identifiant qui n'est pas très explicite. -Formulaire principal -> table Utilisateurs et sous formulaire -> table Services. Mais il m'est impossible d'affecter le service à l'utilisateur sélectionné. Merci de votre aide. |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Fifille,
La bonne technique est celle-ci : Citation:
__________________
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é de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Bonjour Richard_35,
Merci pour ta réponse, par contre mon problème n'est pas résolu. En fait, je voudrais que mes tables soient alimentées automatiquement lorsqu'on sélectionne l'utilisateur et le service auquel il doit être affecté (la sélection doit se faire sur libellé du service et non l'id qui n'est pas du tout explicite). J'ai mis dans la table de jointure les clés IdService et IdUtilisateur pour empêcher qu'il y ait des doublons dans la saisie. Par contre en passant par une requête, j'affiche le libellé mais lorsque je le choisis dans le formulaire il n'alimente pas automatiquement ma table Services ni la table de jointure. As-tu une idée pour le faire? Si oui merci de me donner un exemple concret car je sèche vraiment à ce niveau. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Les suggestions de d'autres contributeurs sont les bienvenues.
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Suggestion :
F1 : Un formulaire basé sur Utilisateurs. F2 : Un formulaire basé sur une requête ServUtilisateurs liée à Services. Dans F1, faire glisser en sous-formulaire F2, liés entres eux par IdUtilisateur. Cela fonctionne, aussi, dans l'autre sens (Service => Utilisateur). Ceci effectué en 2 minutes via les assistants. Ensuite, à toi d'améliorer les formulaires en question.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
J’ai créé une requête dans le but de récupérer le libellé du service pour toutes les occurrences dont l’IdService est le même dans les tables Services et ServUtilisateurs.
Syntaxe : "SELECT distinct Services.Nom FROM Services INNER JOIN ServUtilisateurs ON Services.IdService = ServUtilisateurs.IdService;" Est-ce de cette requête qu’il s’agit ? Si oui, elle ne me retourne pas le résultat désiré(uniquement les libellés dont l'Id est compris dans la table de jointure pourtant j'ai besoin de tous les libellés de la table Service) et en plus, dans le F2, je n’ai pas les libellés en liste déroulante. En passant par la requête, mes tables de jointure et Services ne seront pas alimentées ce qui me gêne car mon but est de les alimenter pour chaque enregistrement. Peut-être que pour les tables ayant des relations plusieurs à plusieurs il faudrait procéder autrement en ce qui concerne la conception des formulaires? Je suis à l'écoute de toutes autres propositions; ce point me bloque dans l'avancé de mon projet. Merci |
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Dans le processus que je t'ai indiqué, le couple Service/Utilisateur est créé automatiquement dans la table de jointure ainsi que dans la table Service : à toi, ensuite, d'affiner.
Citation:
Code sql :
Passes par l'assistant, c'est plus pratique.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Merci beaucoup pour ton aide Richard_35
!Cette solution je l'avais trouvée en procédant autrement. Mais je l'ai abandonnée car je rencontrais un problème (que je rencontre toujours); en fait, lorsque je sélectionne un service (le libellé), il incrémente IdService ce qui donne des doublons dans ma table Services (Exemple : Id : 1 - Libellé : Gestion, Id : 2 - Libellé : Gestion); Lorsque je sélectionne l'Id, c'est ok mais mon problème est toujours le même car ma sélection doit se faire sur le libelllé et non sur l'Id qui sera masqué par la suite. Pour pallier ce problème, dans les propriétés du NomService de la table Services, j'ai indexé à "Oui Sans doublon". Néanmoins çà ne résout pas le problème parce que je voudrais affecter un service existant à un utilisateur et non créer un nouveau service à chaque fois que je veux affecter un service à un utilisateur. Merci une fois de plus de votre aide. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Fifille,
Autre suggestion :
==> de cette manière, tu attaques ta table de liaison par les deux bouts... si j'ose dire. Je te laisse découvrir tout cela via les assistants.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Bonjour Richard_35,
Merci pour ton intérêt; cette suggestion ne m'aide pas plus que çà; je souhaite affecter un service existant à un utilisateur bien défini sur le formulaire de gestions des utilisateurs. La solution proposée hier me convient mais je voudrais plutôt faire une recherche sur les libellés (existants) du service et non sur l'id; cette recherche sur les libellés me pose problème car elle duplique les libellés du service chaque fois que je voudrais en affecter à un utilisateur ce qui n'est pas du tout correct.... Peut-être qu'il faudrait que je pense à procéder autrement, mais ce qui me gêne c'est le fait de gérer la relation plusieurs à plusieurs qui existe entre ces tables dans un formulaire. Personne n'a jamais géré une relation plusieurs à plusieurs dans un formulaire? Je vous remercie par avance pour vos propositions. |
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Citation:
Citation:
__________________
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é de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Je m'explique :
Citation:
Citation:
J'espère que j'ai été plus claire. Merci |
||
|
|
00
|
|
|
#13 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Oui, c'est clair depuis le début...
Citation:
__________________
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é de passage
![]() Inscription : juillet 2011 Messages : 9 ![]() |
Citation:
Je sèche vraiment dessus pourtant j'ai l'impression de ne pas être loin de la solution |
|
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Vite fait, uniquement avec les assistants (par la force des choses : je ne connais pas VBA...).
Formulaire Service :
Formulaire Utilisateur :
Je t'invite à affiner la chose...
__________________
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