Bonjour,
Je vous explique mon problème, je travaille sur Access et je veux concaténer plusieurs lignes en une seule.
J'ai une table de concert qui contient deux champs (num et lib)
Num lib
01 concert des bébés
01 concert des enfants
02 concert des adultes
01 concert des seniors
Je veux avoir
Num lib
01 concert des bébés concert des enfants concert des seniors
02 concert des adultes
J'ai trouvé sur le net la programmation que j'ai essayé d'adapter mais cela ne marche pas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Public Function ConcertFaire(Num As Long) As String
Dim DB As DAO.Database
Set DB = CurrentDb
Dim strConcert As String
Dim rst As DAO.Recordset
Dim rstN As DAO.Recordset
Set rst = DB.OpenRecordset("SELECT num FROM concert ORDER BY num", dbOpenDynaset)
Do While Not rst.EOF
Set rstN = DB.OpenRecordset("SELECT lib FROM concert WHERE num = " & Chr(34) & CStr(rst(0) & Chr(34)), dbOpenDynaset)
Do While Not rstN.EOF
strConcert = strConcert & ", " & rstN(0)
rstN.MoveNext
Loop
rstN.Close
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set rstN = Nothing
DB.Close: Set DB = Nothing
End Function |
Je l’exécuter via Access par cette requête: SELECT DISTINCT concert.num, ConcertFaire(num) AS LesConcerts FROM concert;.
cela tourne longtemps dans le vide et m'affiche que les num.
Pouvez-vous m'aider car je commence la programmation en VBA et ne comprend pas grand chose.
Merci
Partager