Bonjour,
Pour pouvoir concatener plusieurs contacts (un champ sur plusieurs lignes) par organisme dans ma base, j'ai besoin d'une fonction que ne possède apparemment pas Access 2013. Néophyte mais à force de chercher partout, j'ai récupéré ce codage VBA (ici) :
Après quoi je dois appeler la fonction avec une requête du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34 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
Or ça ne semble pas fonctionner correctement et j'ai vraiment besoin de terminer cette base pour mon stage qui finit ce vendredi ! Je ne connais pas le langage VBA, juste du SQL (et des notions culture G sur les algorithmes). J'ai une fenêtre qui s'ouvre et me demande de choisir une base de données (apparemment ODBC ?...) et j'avoue bloquer pour me dépatouiller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT n°_CPME, ConcatForQuery("n°_CPME",[n°_CPME],"civ_prn_nom","Visu_entrps_X_contacts"," - ") AS Résultat FROM Visu_entrps_X_contacts GROUP BY n°_CPME;
Pourriez-vous m'aider aussi diligemment que possible ?
Cordialement.
Partager