[ACCESS] Concatener entièrement une colonne
RésoluLaConcatenation -
Bonjour,
Je ne sais pas si ça doit passer par du SQL ou du VBA (je prends tout), mais je bloque sur quelque chose de probablement simple.. Quand je fais mes recherches, je tombe sur plus compliqué.
Je cherche 'simplement' à concaténer l’entièreté d'une colonne d'une table vers une seule et même cellule séparé par des pipe "|", sur l'intégralité d'une colonne d'une requête.
Exemple (la colonne 2 est juste la pour spécifier que j'ai plusieurs colonne dans ma table) :
Je veux que mes valeurs de la colonne1 de Ma_Table soit intégralement concaténées et séparées par des pipes, dans toutes les cellules de la colonne2 de Ma_Requête
Table : Ma_Table
Colonne1 Colonne2
A 1
B 2
C 3
D 4
Résultat souhaité :
Requête : Ma_Requête
Colonne1 Colonne2
Donnée 1 colonne 1 A|B|C|D
Donnée 2 colonne 1 A|B|C|D
Donnée 3 colonne 1 A|B|C|D
Donnée 4 colonne 1 A|B|C|D
En espérant avoir été assez clair dans ma demande !
Merci d'avance.
Windows / Firefox 102.0
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
sur quoi tombes-tu? as-tu testé?
-
Bonjour,
Si la question est 'est ce que j'ai essayé par moi même' malheureusement oui, j'essaye toujours avant de demander, sinon pas de progression :D
J'ai essayé plusieurs choses en provenances de divers sujets de forum, mais je n'ai pas réussi à trouver un sujet qui correspondait à mon besoin, donc j'ai du faire des tests et bidouiller à chaque fois, mais sans aucun résultat qui s'approche de prêt ou de loin à ce que je cherche..
Merci pour l'attention portée à mon pb :)
Tu imagines probablement à tort que c'est très simple.
Montre-nous ce que tu as essayé, et ce que tu as obtenu, nous pourrons sans doute t'aider.
A tout hasard, tu peux t'inspirer de ceci: https://stackoverflow.com/questions/54328595/access-vba-concatenate-single-column-query-into-a-single-line-result
Ma réponse semble s'être volatilisée..
Merci, ton lien m'a lancé sur une piste !
En fait en voyant les différentes propositions sur ton lien je me suis souvenu d'un bout de code que j'avais utilisé pour autre chose. Je l'ai adapté et après un peu de temps et de nombreux échecs, j'ai réussi à faire marcher la bête.
ublic Function Concatenation() As String Dim res As DAO.Recordset Dim sql As String 'Selectionne la colonne Ma_colonne de la table Ma_Table sql = "SELECT Ma_colonne FROM Ma_Table" Set res = CurrentDb.OpenRecordset(sql) 'Concatene les différents enregistrement While Not res.EOF Concatenation = Concatenation & res.Fields(0).Value & "|" res.MoveNext Wend 'Enleve le dernier | Concatenation = Left(Concatenation, Len(Concatenation) - 1) 'libere la mémoire Set res = Nothing End Function
Et derrière j'ai appelé la fonction dans ma requête.
-
-
Bonjour,
Pour concaténer avec des lettres ou des symboles particuliers, la réponse est simple. Il faut introduire des '& " ' et ' " &' entre chaque éléments à concaténer. Par exemple : Col1 & " | " & Col2 & " | " & Col3 & " |" & etc
Pour concaténer des données qui n'appartiennent pas au même enregistrement, ce n'est tout simplement pas possible. C'est là une particularité des SGBD
Bonne journée