matcatwa
Messages postés2Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention 4 mars 2005
-
3 mars 2005 à 19:37
matcatwa
Messages postés2Date d'inscriptionjeudi 3 mars 2005StatutMembreDerniè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?
matcatwa
Messages postés2Date d'inscriptionjeudi 3 mars 2005StatutMembreDerniè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",", ");