Bonjour.
Oui, je confirme quand on utilise une requête de regroupement sur des champs mémos, ils sont coupés à 255 caractères.
Si tu as besoin d'identifier les "originiaux", je te suggères cela :
Faire une requête qui tri tes champs mémos en ordre croissant.
Faire du code VBA qui va "regarder" séquentiellement tes données et identifier les "originaux".
Cela ressemble à :
tblDonnees
Clef
ChampMemo
EstOrginal (oui/non, valeur par défaut : Faux)
reqDonnees
select [tblDonnees].[ChampMemo], [tblDonnees[].[EstOriginal] from [tblDonnees] order by [tblDonnees].[ChampMemo]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| dim ref as string
dim db as dao.database:set db=currentdb
dim r as dao.recordset : set r=db.openrecordset("reqDonnees", dbOpenDynaset)
do while not r.eof
if ref<>r![ChampMemo] then
r.edit
r![EstOriginal]=true
r.update
ref=r![ChampMemo]
end if
r.movenext
loop
r.close:set db=nothing
db.close:set db=nothing |
sinon on peut utiliser un DCount
DCount("Clef"; "tblDonnees"; "[Clef]<=" & [tblDonnees].[Clef] & " and [ChampMemo]=""" & [tblDonnees].[ChampMemo] & """")
ceux où le DCount donne 1 sont les "originaux".
Je pense que le DCount sera moins rapide que le VBA.
A+
Partager