Access concoténation

matcatwa Messages postés 2 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 4 mars 2005 - 3 mars 2005 à 19:37
matcatwa Messages postés 2 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 4 mars 2005 - 4 mars 2005 à 16:39
Bonjour,

j'aimerais savoir comment créer une fonction me permettant de concaténer
des données provenant d'une requête dans Access.

Ex: Les résultat de ma requête me donne des noms de famille. J'aimerais pouvoir
les avoirs sur une même ligne avec une virgule entre chaque nom, est-ce possible?

ex: Bilodeau
Beaubien
Beaudelaire
Carbonneau

résultat souhaité: Bilodeau, Beaubien, Beaudelaire, Carbonneau

Merci d'avance

2 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
4 mars 2005 à 08:31
En VB ou en ACCESS ?
Donnes le code d'execution de ta Requete

It@li@
0
matcatwa Messages postés 2 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 4 mars 2005
4 mars 2005 à 16:39
C'était en Access.

Je te remercie beaucoup d'avoir voulu m'aider mais entre-temps j'ai trouvé la
solution à mon problème en utilisant cette fonction:

Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String = "/") As String


'** Regroupement de donnée sur le champ fldRegroup
'** et concaténation sur le champ strConcat
Dim db As Database
Dim rst As Recordset
Dim strResult As String
Dim strRst As String


Set db = CurrentDb()
strRst = "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] = """ & fldRegroup & """;"


Set rst = db.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.MoveFirst
Do Until .EOF
If strResult = "" Then
strResult = .Fields(strConcat)
Else
strResult = strResult & strSep & .Fields(strConcat)
End If
.MoveNext
Loop
End If
End With
rst.Close: Set rst = Nothing
db.Close: Set db = Nothing
ConcatForQuery = strResult


End Function

J'ai utilisé la requête suivante qui peut se faire sur une table ou sur une requête:

SELECT ConcatForQuery("num",[num],"prénom","Table1",", ") AS Résultat
FROM Table1
GROUP BY Table1.NUM
HAVING (((Table1.NUM)="1"))
ORDER BY ConcatForQuery("num",[num],"prénom","Table1",", ");

Alors encore merci!
0
Rejoignez-nous