Requête avec plusieurs tables de jonction et champs similaire

Résolu
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
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

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peux-tu partager le code SQL de ta requête?
et donner un exemple de doublon.
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Castours
 
bonjour
peux tu mettre ta base compressée dans un lien avec ci joint que tu copieras dans un message
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peut-être veux-tu plutôt faire trois requêtes, une pour les élus, une pour les agents, et une pour les contacts.
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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...
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Pour plus d'info sur le bug :
dans le champs mail, il me renseigne le mail et le sépare par un #mailo: et répète le mail à nouveau...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
donc chacune des requêtes fonctionne bien, et l'union donne un mauvais affichage du mail?
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
oui. Pour info, sur les tables le champ mail est paramétré en "lien hypertexte".
Sur les requêtes de sélections elles s'affichent correctement.

Mais sur la requête union le champs mail s'affiche comme ceci : vanessa54230@orange.fr#mailto:vanessa54230@orange.fr#

et ce qui est bizarre c'est qu'à partir de cette requête, j'ai fait un état et le fait d'indiquer dans les paramètres de l'état que c'était un lin hypertexte, il a corrigé l'erreur.

Mais j'aimerai que cela s'affiche normalement sur la requête union pour que cela soit plus simple pour moi d'extraire les mails pour faire une liste de diffusion mail
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
essaie
SELECT ..., hyperlinkpart(AGENTS.Mail , 2) ...
0
Vaness54230 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Où dois-je fermer la parenthèse ? Car si je la mets derrière Agents mail il m'indique opération non valide. Si je la mets après centre aquatique il m'indique Erreur de syntaxe...A la fin ça ne fonctionne pas non plus...Désolée pas douée pour le langage SQL...

SELECT DISTINCT AGENTS.Civilité, AGENTS.Nom, AGENTS.Prénom, hyperlinkpart (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"));
0