Bonjour,
Je travaille actuellement sur un projet pour lequel je dois exporter une base de donnée de contacts vers un fichier Excel pour une migration ultérieure vers un autre système.
Les infos que je dois exporter sont contenues dans une BD Access avec plusieurs tables. J'ai donc créé des requêtes pour pouvoir regrouper les infos dont j'ai besoin, le but étant d’avoir une base de contacts sous Excel avec toutes les infos (venant de plusieurs tables) pour chacun des contacts.
Au final, j'aimerais avoir un tableau qui contiendrait les champs suivants:
Citation :
Nom Info1 Info2 Info3 Info4 [...] Options
|
Infon pouvant être un numéro de téléphone, un e-mail, une adresse etc...
J'ai donc créé une requete avec tous ces champs que l'on va appeler "Requête Principale"
Par contre, pour la colonne options de cette requete, qui fait appel à une table spécifique (contenant seulement Nom du Contact et Option) il y a plusieurs options possibles pour un même contact, ce qui donne une table comme suit :
Citation :
Nom Options
Contact1 OptionA
Contact2 OptionA
Contact1 OptionB
Contact2 OptionY
Contact3 OptionZ
Etc.
|
Cette table contient donc toutes les options mélangées. Lorsque je veux ajouter le champs option directement dans ma Requete Principale, j'obtient plusieurs lignes pour un même contact, chaque ligne contenant l'une des options associée au contact (normal). Ce qui donne:
Citation :
Nom Info1 Info2 Info3 Info4 [...] Options
Contact1 EMail1 Adresse1 Tel1 Fax1 [...] OptionA
Contact1 EMail1 Adresse1 Tel1 Fax1 [...] OptionB
Contact2 EMail2 Adresse2 Tel2 Fax2 [...] OptionA
Contact2 EMail2 Adresse2 Tel2 Fax2 [...] OptionY
etc...
|
Je voudrais n’avoir qu’une ligne par contact dans les résultats donc je voudrais faire une sorte de concaténation dans la même colonne avec un séparateur (si possible au choix) du genre :
Citation :
Nom [...] Options
Contact1 [...] OptionA,OptionB
Contact2 [...] OptionA,OptionY
Contact3 [...] OptionZ
|
Sur la forme, je suis pas difficile, on peut intégrer directement l'astuce dans la requete principale, ou passer par une requête intermédaire s'il faut puis récupérer les résultats dans la Requete Principale ensuite
Pour quelqu’un qui maitrise les DB et Access, ça peut paraître con (ou pas) mais après un peu de prise de tête, de recherches dans Google et dans ma mémoire, j’ai pas trouvé, ou juste des pistes (concaténation, groupe by, macro/module, modif dans la requete SQL…) et au final, j'en ressors avec rien du tout Je dois préciser que je n'ai aucun connaissance en programmation, j'arrive juste à bidouiller dans la limite de mes connaissances (acquises sur le tas selon mes besoins).
Merci d'avance à qui pourra m'aider
Message édité par Mariton le 25-02-2009 à 08:57:02