Menu

Requête avec plusieurs tables de jonction et champs similaire [Résolu]

Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
- - Dernière réponse : Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
- 1 avril 2019 à 14:04
Bonjour,
Complètement novice sur Access, j'ai besoin de vos lumières.
Je dois faire une bdd contact dans laquelle j'ai notamment une table contact (comprenant des personnes de différents horizons), une table agent (qui sont les employés) et une table élus.
J'ai aussi une table réunion qui mentionne les différentes réunions récurrentes auxquelles ils (contact, élus et agents) doivent participer.
Et comme chaque personne peut participer à plusieurs réunions et chaque réunion est concernée par plusieurs personnes, j'ai fait des tables intermédiaires.
Toutefois, lorsque je fais ma requête pour retrouver toutes les personnes qui doivent participer à une réunion, cela me met des doublons.
De plus, j'aimerai que les noms des contacts, les noms des agents et les noms des élus se mettent l'un en dessous de l'autre et non à droite de ma feuille de données.
J'espère avoir été claire et explicite.
Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

3 réponses

Messages postés
7775
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 mai 2019
381
0
Merci
bonjour, peux-tu partager le code SQL de ta requête?
et donner un exemple de doublon.
Commenter la réponse de yg_be
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
0
Merci
SELECT REUNIONS.[Nom REUNION], ELUS.Mail, AGENTS.Mail, CONTACTS.Mail
FROM ((ELUS INNER JOIN (REUNIONS INNER JOIN [TJ_REUNION ELUS] ON REUNIONS.[N° Réunion] = [TJ_REUNION ELUS].[N° Réunion]) ON ELUS.[N° Elu] = [TJ_REUNION ELUS].[N° Elu]) INNER JOIN (CONTACTS INNER JOIN [TJ_REUNION CONTACT] ON CONTACTS.[N° Contact] = [TJ_REUNION CONTACT].[N° Contact]) ON REUNIONS.[N° Réunion] = [TJ_REUNION CONTACT].[N° Réunion]) INNER JOIN (AGENTS INNER JOIN [TJ_REUNION AGENTS] ON AGENTS.[N° Agent] = [TJ_REUNION AGENTS].[N° Agent]) ON REUNIONS.[N° Réunion] = [TJ_REUNION AGENTS].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"));
Voilà pour le code SQL

Et pour les doublons :
La feuille de donnée se présente avec une colonne mail pour les élus (je n'ai que 2 élus qui participent à ladite réunion mais les adresses sont répétées les unes en dessous des autres et j'ai une autre colonne pour les mails contacts et idem j'ai une dizaine de participants, et ils se répètent les uns en dessous des autres
bonjour
peux tu mettre ta base compressée dans un lien avec ci joint que tu copieras dans un message
yg_be
Messages postés
7775
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 mai 2019
381 -
peut-être veux-tu plutôt faire trois requêtes, une pour les élus, une pour les agents, et une pour les contacts.
Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
-
Bonjour, merci pour vos réponses. Alors je ne peux pas me permettre de transmettre la base de données qui contient des éléments confidentiels. Et non, c'est bien une seule requête dont j'ai besoin....Alors je me demande si je ne devrais pas faire une seule table avec les contacts, les agents et les élus...
Commenter la réponse de Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
0
Merci
Re-bonjour,
J'ai fait les 3 requêtes séparément et elles fonctionnent.
J'ai donc tenté de faire une requête union mais j'ai des bugs. voici le code
SELECT DISTINCT AGENTS.Civilité, AGENTS.Nom, AGENTS.Prénom, AGENTS.Mail, REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (AGENTS INNER JOIN [TJ_REUNION AGENTS] ON AGENTS.[N° Agent] = [TJ_REUNION AGENTS].[N° Agent]) ON REUNIONS.[N° Réunion] = [TJ_REUNION AGENTS].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"))
UNION SELECT CONTACTS.Civilité, CONTACTS.Nom, CONTACTS.Prénom, CONTACTS.Mail, REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (CONTACTS INNER JOIN [TJ_REUNION CONTACT] ON CONTACTS.[N° CONTACT] = [TJ_REUNION CONTACT].[N° Contact]) ON REUNIONS.[N° Réunion] = [TJ_REUNION CONTACT].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"))
UNION SELECT ELUS.Civilité, ELUS.Nom, ELUS.Prénom, ELUS.Mail, REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (ELUS INNER JOIN [TJ_REUNION ELUS] ON ELUS.[N° ELU] = [TJ_REUNION ELUS].[N° Elu]) ON REUNIONS.[N° Réunion] = [TJ_REUNION ELUS].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"));

Qu'est ce que j'ai mal fait ?
yg_be
Messages postés
7775
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 mai 2019
381 -
il faut remplacer
AGENTS.Mail
par
 hyperlinkpart (AGENTS.Mail, 2)

SELECT DISTINCT AGENTS.Civilité, AGENTS.Nom, AGENTS.Prénom, 
hyperlinkpart (AGENTS.Mail, 2), 
REUNIONS.[Nom REUNION] 
Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
> yg_be
Messages postés
7775
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 mai 2019
-
Merci pour les précisions.

Mais non cela ne fonctionne toujours pas. Voilà ce qui s'affiche désormais :
mailto:vanessa54230@orange.
En fait toutes mes adresses mails sont tronquées...

A toutes fins utiles, voilà le code :

SELECT DISTINCT AGENTS.Civilité, AGENTS.Nom, AGENTS.Prénom, hyperlinkpart (AGENTS.Mail, 2), REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (AGENTS INNER JOIN [TJ_REUNION AGENTS] ON AGENTS.[N° Agent] = [TJ_REUNION AGENTS].[N° Agent]) ON REUNIONS.[N° Réunion] = [TJ_REUNION AGENTS].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"))
UNION SELECT CONTACTS.Civilité, CONTACTS.Nom, CONTACTS.Prénom, hyperlinkpart (CONTACTS.Mail, 2), REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (CONTACTS INNER JOIN [TJ_REUNION CONTACT] ON CONTACTS.[N° CONTACT] = [TJ_REUNION CONTACT].[N° Contact]) ON REUNIONS.[N° Réunion] = [TJ_REUNION CONTACT].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"))
UNION SELECT ELUS.Civilité, ELUS.Nom, ELUS.Prénom, hyperlinkpart (ELUS.Mail, 2), REUNIONS.[Nom REUNION]
FROM REUNIONS INNER JOIN (ELUS INNER JOIN [TJ_REUNION ELUS] ON ELUS.[N° ELU] = [TJ_REUNION ELUS].[N° Elu]) ON REUNIONS.[N° Réunion] = [TJ_REUNION ELUS].[N° Réunion]
WHERE (((REUNIONS.[Nom REUNION])="COMITE DE PILOTAGE CENTRE AQUATIQUE"));
yg_be
Messages postés
7775
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 mai 2019
381 > Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
-
essaie
SELECT  hyperlinkpart (Mail, X)
FROM AGENTS
en jouant avec les valeurs de X, de 0 à 5.
Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
-
Génial. Çà fonctionne - à part pour 2 adresses mails mais comme elles dépendent toutes les 2 de la même table, je vais aller vérifier les paramètres.
Merci beaucoup pour ton aide
Vaness54230
Messages postés
16
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
18 avril 2019
-
Problème résolu :
Les paramètres de toutes les tables étaient identiques. Donc le pb ne venait pas là. Du coup j'ai remodifié les valeurs.
Pour le mail agent 0
Pour le mail contact 1
Pour le mail élu j'avais mis 2 et c'est pour cela que ça ne fonctionnait pas. J'ai essayé de lui attribuer le 1 et maintenant tt marche
Encore merci
Commenter la réponse de Vaness54230