RichTextBox, création du contrôle dans une Form - VBA - erreur : "Le sujet n'est

Signaler
Messages postés
1
Date d'inscription
lundi 14 mai 2001
Statut
Membre
Dernière intervention
9 octobre 2005
-
Messages postés
1
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
1 juillet 2008
-
Bonjour,



Ayant développé beaucoup depuis vingt ans mais, plus récemment,
développeur occasionnel, notamment en VBA (Bibliothéque de macros
complémentaires VBA excel 20 000 lignes de code),

je tombe hier sur un problème qui parait assez énorme dans l'utilisation de l'ActiveX Richtx32.ocx dans l'environnement Office2003



RichTextBox.



Références du problème : ---------------------------------------------

Sous VBA et office 2003 (Excel), lors de la création d'une Form (design) tentant d'utiliser le contrôle RichTextBox j'obtiens le message d'erreur suivant :

"Le sujet n'est pas approuvé pour l'action spécifiée"



Une recherche me conduit à l'article :



Erreur 0x800B0004 - Le sujet n'est pas approuvé pour l'action spécifiée

http://support.microsoft.com/default.aspx?scid=kb;fr;836987



Il m'oriente sur les problèmes de contrôle de sécurité, puis finalement je trouve l'article suivant :

http://support.microsoft.com/?scid=kb%3Ben-us%3B838010&x=13&y=10



Problems occur when you use the Rich TextBox Control 6.0 in Office XP and in Office 2003

View products that this article applies to.

Article ID : 838010

Last Review : May 5, 2004

Revision : 1.0

SYMPTOMS

When you open a document that contains an instance of the Microsoft Rich TextBox Control

6.0 (Richtx32.ocx) in Microsoft Office XP or in Microsoft Office 2003, the control may

not successfully load, or you may receive a security warning that requires your

interaction. The document may not function correctly, or you may experience a run-time

error because the control is not available. This problem occurs if any one of the

following conditions are met:

• The control is embedded in the document.

• The control is used as part of a Microsoft Visual Basic for Applications (VBA)

UserForm.

• The control is used as an add-in project.



---------------------------------------------------------

La conséquence semble donc en être tout simplement que RichTextBox
n'est pas directement utilisable dans l'environnement Office2003 (alors qu'il l'était dans les versions antérieures),

en effet la recommandation Microsoft en date du 5/05/2004 est de créer un contrôle qui encapsule RichTextBox
et qui n'entraîne pas les contrôles de sécurité dont RichTextBox est
l'objet. L'application des solutions semble extrêmement lourde mais
tout à fait logique.



J'ai fait une recherche infructuauese d'un contrôle ActiveX RichText en
remplacement. En effet les outils que j'utilise actuellement, mon
expérience récente et le temps dont je dispose, ne me laissent pas
envisager de réaliser moi même l'activeX nécessaire.



Quelqu'un aurait-il une idée sur ce problème ?



Il semblerait que ce problème ait été, peut-être, éphémère, en effet à
part quelques mails sur quelques forums, mais je n'ai pas trouvé de
fil... bien récent.

Evidemment Visual studio.net semble régler le problème plus simplrmrnt,
mais faut-il donc avoir l'outil pour insérer un RichTextBox dans une
Form en office2003



Merci d'avance

1 réponse

Messages postés
1
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
1 juillet 2008

Salut,

bien que presque 3 années se soient écoulées entre nos deux posts, j'ai aussi été confronté a ce problème et voici la réponse que j'ai trouvé et qui marche :

http://p2p.wrox.com/topic.asp?TOPIC_ID=10894


Here's the solution for you Access 2003 and some Access 2002/XP SP3
Users for using the RichTX32.OCX ActiveX control in your Access
databases


This method will allow Internet Explorer to also use Richtx32.ocx which
does open a security flaw to be opened up, but it's the choice you
take. See the KB article at MS for more info on this.


To allow Access 2002 w/SP3 or 2003 to use this control, you need to edit the registry via regedit, find the following key:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{3B7C8860-D78F-101B-B9B5-04021C009402}


This should be there, I am dead sure that RichTx32.ocx always takes the class ID of 3B7C8860-D78F-101B-B9B5-04021C009402


Within this key there should be a DWORD value called "Compatibility Flags".


If this is set to 0x400 (hexadecimal 400, decimal 1024) then change it
to simply 0 (decimal or hex). You should now be able to insert the
richtext control on your forms and use the control again as per usual
in Access 2002 w/SP3 or Access 2003.


I tested this with IE 6 to check if it blocks it and Access 2003 and changing this registry key does indeed remove the block.


Hope this helps.

c'est très con , en fait microsoft à détécté une faille de sécurité via internet explorer pour cet .ocx. C'est bien ils l'ont détécté,
mais plutot que de se défonser un peu et de corriger le problème ils ont tout simplement décidé de ne plus autoriser l'utilisation de l'ocx, donc il faut réautoriser son utilisation en changant une valeur dans le registre. et par la meme occasion cela reouvre cette mystérieuse faille de sécurité