Utilisation du type Mémo sous vba

Signaler
Messages postés
1
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
11 décembre 2007
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Salut,

Travaillant sous access 2003...

J'ai une table source contenant un champ de type mémo "ch_type_memo_source" dont le contenu fait plus de 255 caractéres. (l'enregistrement pointé pour exemple fait 460 caracteres)

Je fais appel à ces table via mes objet "obj_table_source" et "obj_table_destination" sans problèmes mais quand je copie le contenu de mon champ (via objets) je ne retrouve au final que les 255 premier caracteres.

Comment puis je faire pour ne rien perdre? cela commence à me rendre chévre.

Merci d'avance.

Voici mon code :





Function MA_FONCTION()

'Appel de mes objets
Dim obj_table_source As Recordset
Set obj_table_source = CurrentDb().OpenRecordset("ma_table_source", dbOpenDynaset)

Dim obj_table_destination As Recordset
Set obj_table_destination = CurrentDb().OpenRecordset("ma_table_destination ", dbOpenDynaset)

'Pointage sur la premiere ligne de mes tables
obj_table_source.MoveFirst
obj_table_destination.Movefirst

'Execution de la copie
obj_table_destination.edit

obj_table_destination.Fields("ch_type_memo_destination") = obj_table_source.Fields("ch_type_memo_source")
'si je fais mon "len(obj_table_destination.Fields("ch_type_memo_destination") )"  il me renvois bien 460.
'si j'utilise l'éspion d'access, que je copie la valeur affiché (via copier coller) et que je fait un "len" dessus je retrouve 251 caracteres.
'si je copie le contenu de cet enregistrement en mode table (via copier coller) et que je fait un "len" dessus je retrouve 255 caracteres.

obj_table_destination.update

obj_table_destination.close
obj_table_source.close

End Function

1 réponse

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

C'est vrai que c'est bizarre ton truc...ton champ dest et bien d'un type mémo aussi ..?

A tout hasard, essaye de passer par une variable de type string :

'Execution de la copie
obj_table_destination.edit

Dim MyValue As String

MyValue = obj_table_source.Fields("ch_type_memo_source")

obj_table_destination.Fields("ch_type_memo_destination") = MyValue

Bon, c'est vrai que c'est "idiot" de faire comme cela...mais défois que...

A+
Exploreur

 Linux a un noyau, Windows un pépin