Donc mes recherches ont abouties à : ça existe en mysql, en oracle 11+ mais pas en access. Il faut donc passer par du code VBA, mais ce que j'ai trouvé est très lourd et la requête qui doit calculer 90.000 champs à concaténer prend plus de 30mn à s'exécuter, alors qu'elle n'en prend que quelques secondes si on affiche avec les doublons (plusieurs lignes au lieu de regrouper)
J'ai trouvé ça sur un autre site :
http://access.developpez.com/sources/?page=Requete
que j'ai adapté à ma sauce :
Public Function concatListe(champ As String, table As String, nomPK As String, primaryKey As Integer) As String
Dim res As DAO.Recordset
Dim SQL As String
'Selectionne les participant du projet
SQL = "SELECT " & champ & " FROM " & table & " WHERE " & nomPK & "=" & primaryKey
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrement
While Not res.EOF
concatListe = concatListe & res.Fields(0).Value & " / "
res.MoveNext
Wend
'Enleve les derniers caractères
If Len(concatListe) > 2 Then
concatListe = Left(concatListe, Len(concatListe) - 3)
End If
'libere la mémoire
Set res = Nothing
End Function
Si ça peut aider d'autres personnes...
Et si vous voyez une façon plus simple ou plus efficace de faire ça sous Access, merci de me le dire 