Bonjour à toutes et tous,
J'exploite un fichier excel via Access qui me permet de constituer tous les membres appartenant à un groupe.
Pour se faire, j'ai une requête de création de table qui s'appuie sur la fonction ci-dessous :
La requête quant à elle, est la suivante :
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 = Nz(.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
Le hic, c'est que bien que le champ useremail de ma table sys_user_grmember soit bien au format texte long, la requête avec concaténation me crée une table où le champ useremail est au format texte court et est tronqué à partir du 255ème caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT sys_user_grmember.groupes, ConcatForQuery("groupes",[groupes],"useremail","sys_user_grmember","; ") AS useremail INTO T_users FROM sys_user_grmember GROUP BY sys_user_grmember.groupes, sys_user_grmember.useremail HAVING (((sys_user_grmember.useremail) Is Not Null));
Y a t'il une solution pour remédier à ça et empêcher le troncage du champ ?
Merci par avance pour votre aide.
Partager