OVH Cloud OVH Cloud

RichText et Mémo

6 réponses
Avatar
Alain
Bonjour

J'aimerai "traduire" le contenu d'un champ mémo "codé" en RichText pour
l'utiliser dans un champ mémo classique:

Ex: Le contenu de ma table "champmémo" est le suivant:

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl
{\f0\fswiss\fprq2\fcharset0 Arial;}}
{\colortbl
;\red255\green0\blue0;\red255\green255\blue0;\red0\green0\blue255;}
\uc1\pard\ulnone\f0\fs20 Test \cf1\b RTF a \cf2 different \cf3 record\par
}

Je voudrais que ma zone de texte affiche le contenu débarrassé de toutes
les améliorations RichText exactement comme dans un champ mémo classique
d'Access:
Test RTF a different record

Qui connait une fonction / formule capable d'effectuer cette "traduction" ?

Merci pour votre aide

Alain

6 réponses

Avatar
Jean-Baptiste Lecuit
Essaye ceci :
(Il faut établir une référence à "Microsoft Rich TextBox Control")
Function RTFtoTEXT (strRTF as string) as string
Dim rtb as RichTextBox
Set rtb = New RichTextBox
rtb.TextRTF = Nz(strRTF)
RTFtoTEXT = rtb.text
set rtb = nothing
End Function
NB : le contrôle RichTextBox est désactivé dans Access 2003 (il ne
fonctionne bien qu'à condition de baisser le niveau de sécurité d'Access)

Jean-Baptiste Lecuit
Avatar
Raymond [mvp]
Bonjour.

non seulement il n'est pas activé mais en plus il ne fait plus partie
d'access officiellement et ne sera pas supporté. Il reste une solution c'est
d'utiliser le contrôle Richtext de lebans.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean-Baptiste Lecuit" a
écrit dans le message de
news:
Essaye ceci :
(Il faut établir une référence à "Microsoft Rich TextBox Control")
Function RTFtoTEXT (strRTF as string) as string
Dim rtb as RichTextBox
Set rtb = New RichTextBox
rtb.TextRTF = Nz(strRTF)
RTFtoTEXT = rtb.text
set rtb = nothing
End Function
NB : le contrôle RichTextBox est désactivé dans Access 2003 (il ne
fonctionne bien qu'à condition de baisser le niveau de sécurité d'Access)

Jean-Baptiste Lecuit


Avatar
Alain
Bonjour Jean-Baptiste

Merci pour ton aide. Ta fonction RTFtoTEXT fait exactement ce que je
souhaitais.

Il ne me reste plus qu'à trouver comment attribuer cette fonction à la
propriété source de ma zone de texte pour qu'elle puisse
s'appliquer automatiquement à tous les enregistrements.
(l'objectif est de pouvoir utiliser des contenus de champs de type RichText
et Memo dans une zone de Texte d'un formulaire en affichage mode continu).

Si tu as des pistes pour faire ça, cela serait super

Encore merci et à bientôt
Alain


"Jean-Baptiste Lecuit" a
écrit dans le message de
news:
Essaye ceci :
(Il faut établir une référence à "Microsoft Rich TextBox Control")
Function RTFtoTEXT (strRTF as string) as string
Dim rtb as RichTextBox
Set rtb = New RichTextBox
rtb.TextRTF = Nz(strRTF)
RTFtoTEXT = rtb.text
set rtb = nothing
End Function
NB : le contrôle RichTextBox est désactivé dans Access 2003 (il ne
fonctionne bien qu'à condition de baisser le niveau de sécurité d'Access)

Jean-Baptiste Lecuit


Avatar
Alain
Bonjour Raymond

En fait je compte utiliser le controle RichText de Lebans, mais je cherche à
pouvoir lire dans un formulaire en mode continu
(c'est ma contrainte) des champs mémo qu'ils soient codés en RichText ou
pas.

J'utilise A2000 mais idéalement j'aimerai une solution qui puisse aussi
fonctionner sous 2003.

@+
Alain

"Raymond [mvp]" a écrit dans le message de
news:%23O%
Bonjour.

non seulement il n'est pas activé mais en plus il ne fait plus partie
d'access officiellement et ne sera pas supporté. Il reste une solution
c'est

d'utiliser le contrôle Richtext de lebans.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean-Baptiste Lecuit" a
écrit dans le message de
news:
Essaye ceci :
(Il faut établir une référence à "Microsoft Rich TextBox Control")
Function RTFtoTEXT (strRTF as string) as string
Dim rtb as RichTextBox
Set rtb = New RichTextBox
rtb.TextRTF = Nz(strRTF)
RTFtoTEXT = rtb.text
set rtb = nothing
End Function
NB : le contrôle RichTextBox est désactivé dans Access 2003 (il ne
fonctionne bien qu'à condition de baisser le niveau de sécurité
d'Access)



Jean-Baptiste Lecuit






Avatar
Jean-Baptiste Lecuit
Oui, j'ai des pistes, car j'ai développé une base de données (notes de
lecture, pour la recherche), qui comporte trois volets :
à gauche : un treeview, au milieu, un formulaire en mode continu, à droite,
un gros plan sur l'enregistrement en cours (un peu comme dans Outlook)
Au début, j'utilisais RichTextBox (mais il faut savoir qu'il n'est pas
possible d'afficher le contenu des RTB en mode continu : je devais donc avoir
un doublet memo de chaque champ au format RTF. Il y avait une option de
décompression de la base à la fermeture (vidage des memos) et de restauration
à l'ouverture (remplissage des memos à partir des RTF, avec l'équivalent de
la fonction que je t'ai passée).
Mais comme RichTextBox a été abandonné, j'avais deux solutions : utiliser le
contrôle de Lebans, ou passer au format HTML avec le WebBrowser (conseillé
par Benoit Compoint, de Microsoft). J'ai opté pour la deuxième solution : en
effet on n'est pas certain que le controle de Lebans fonctionnera toujours
dans 10 ou 20 ans, alors que c'est beaucoup plus sûr pour le Webbrowser et le
format HTML. L'inconvénient de cette solution est qu'il faut tout
reprogrammer (mais c'est possible, j'ai finalement réussi) ; l'avantage,
outre celui signalé à l'instant, est que le Webbrowser et le HTML offrent des
possibilités que n'offrent pas la RTB (affichage petites capitales, zoom,
Undo - redo multiple, etc.). En outre, le Webbrowser a l'énorme avantage de
pourvoir héberger un fichier Word par exemple, et de pouvoir ainsi
bénéficier, dans un formulaire Access, de toutes les fonctionnalités de Word
(notamment la vérification d'orthographe). J'utilise cette possibilité pour
la création et l'édition de mes enregistrements.
Je veux bien t'envoyer ma base, mais je ne sais pas comment faire, vu qu'il
ne faut pas rendre publique son adresse e-mail...)
Si tu penches pour HTLM, je peux t'aider (nottamment pour la conversion du
RTF au HTML). Pour le RTF de Lebans, je ne connais pas son contrôle, donc je
ne peux pas t'aider.
Voilà. En espérant que cela pourra éclairer d'autres qui ont eu à faire face
aux mêmes problèmes que moi (soit dit en passant : je n'ai pas trop apprécié
que Microsoft abandonne la RTB sans crier gare, et surtout en disant que les
bases 2002 étaient entièrement compatibles 2003...)
Jean-Baptiste Lecuit
Avatar
Alain
En utilisant la fonctionnalité "Répondre à l'expediteur" tu pourras
m'adresser ta base
(aprés avoir modifié mon adresse email: c'ets une modif simple et logique")

@+
Alain

"Jean-Baptiste Lecuit" a
écrit dans le message de
news:
Oui, j'ai des pistes, car j'ai développé une base de données (notes de
lecture, pour la recherche), qui comporte trois volets :
à gauche : un treeview, au milieu, un formulaire en mode continu, à
droite,

un gros plan sur l'enregistrement en cours (un peu comme dans Outlook)
Au début, j'utilisais RichTextBox (mais il faut savoir qu'il n'est pas
possible d'afficher le contenu des RTB en mode continu : je devais donc
avoir

un doublet memo de chaque champ au format RTF. Il y avait une option de
décompression de la base à la fermeture (vidage des memos) et de
restauration

à l'ouverture (remplissage des memos à partir des RTF, avec l'équivalent
de

la fonction que je t'ai passée).
Mais comme RichTextBox a été abandonné, j'avais deux solutions : utiliser
le

contrôle de Lebans, ou passer au format HTML avec le WebBrowser (conseillé
par Benoit Compoint, de Microsoft). J'ai opté pour la deuxième solution :
en

effet on n'est pas certain que le controle de Lebans fonctionnera toujours
dans 10 ou 20 ans, alors que c'est beaucoup plus sûr pour le Webbrowser et
le

format HTML. L'inconvénient de cette solution est qu'il faut tout
reprogrammer (mais c'est possible, j'ai finalement réussi) ; l'avantage,
outre celui signalé à l'instant, est que le Webbrowser et le HTML offrent
des

possibilités que n'offrent pas la RTB (affichage petites capitales, zoom,
Undo - redo multiple, etc.). En outre, le Webbrowser a l'énorme avantage
de

pourvoir héberger un fichier Word par exemple, et de pouvoir ainsi
bénéficier, dans un formulaire Access, de toutes les fonctionnalités de
Word

(notamment la vérification d'orthographe). J'utilise cette possibilité
pour

la création et l'édition de mes enregistrements.
Je veux bien t'envoyer ma base, mais je ne sais pas comment faire, vu
qu'il

ne faut pas rendre publique son adresse e-mail...)
Si tu penches pour HTLM, je peux t'aider (nottamment pour la conversion du
RTF au HTML). Pour le RTF de Lebans, je ne connais pas son contrôle, donc
je

ne peux pas t'aider.
Voilà. En espérant que cela pourra éclairer d'autres qui ont eu à faire
face

aux mêmes problèmes que moi (soit dit en passant : je n'ai pas trop
apprécié

que Microsoft abandonne la RTB sans crier gare, et surtout en disant que
les

bases 2002 étaient entièrement compatibles 2003...)
Jean-Baptiste Lecuit