Requête avec concaténation de données -> champ tronqué
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 :
Code:
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 |
La requête quant à elle, est la suivante :
Code:
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)); |
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.
Y a t'il une solution pour remédier à ça et empêcher le troncage du champ ?
Merci par avance pour votre aide.