composant ActiveX [VBA excel] - VB/VBA/VBS - Programmation
Marsh Posté le 17-06-2003 à 09:14:32
Bah...
Ca dépends.
Un ActiveX est un objet contenu courrament dans une DLL ou dans un fichier OCX.
Si ce fichier fait lui-même appel à un autre ActiveX qui n'est pas installé, alors oui, ça peut planter.
Mais ça ne fera certainement pas ton erreur, mais plutôt "Can't create ActiveX object, PROGID not found".
Cependant, dans la plupart des cas, pour utiliser un ActiveX (à moins qu'il soit directement lié au projet) tu as par contre besoin d'enregistrer la librairie dans la BDR. Tu ne risques rien à le faire plusieurs fois, ça ne fera pas d'erreur s'il est déjà enregistré.
Pour enregister une DLL (et ainsi rendre disponible ses classes/objets) ouvre une console et tape :
regsvr32 la_bibliothèque.dll |
(ou regsvr tout court si tu n'est pas sous NT/2K/XP)
"la_bibliothèque.dll" est le nom complet (chemin inclu s'il est dans un autre répertoire) de la DLL ou de l'OCX à enregistrer.
Pour désinscrire une bibliothèque, c'est la même syntaxe, met avec le commutateur "/u" (pour "unreg" )
A ce moment, la DLL ne sera plus disponible pour les autre programmes (obligatoire si tu dois recompiler la DLL par exemple, puisque tant qu'elle est inscrite, tu auras de gros problèmes d'accès dessus, à cause du DLLHOST qui conserve souvent la main sur les DLL même si aucun programme ne les utilise)
Sinon, pour ton problème, poste ton code qui pose problème, indique le langage, quelle DLL s'est et tout... Parceque avec juste un message d'erreur sans même savoir quel langage c'est, c'est pas évident
PS (dernier) : généralement, ce message est levé lorsque le constructeur de l'objet appelé à échoué. Ca peut être pour plusieurs raisons : ressources insuffisantes, droits insuffisants, mauvaise version de DLL, etc.
Marsh Posté le 17-06-2003 à 15:42:47
merci pour ta réponse
Mon erreur vient du fait que le fichier de configuration du driver Access ODBC n'a pas été configuré lors de l'installation d'office 97 ce matin. Or l'erreur survient juste au moment où j'essaie d'ouvrir un fichier access(*.mdb).
Il faudrait donc que je remette la dll congigurée dans la base de registre comme tu l'explique dans ton message. Mais je ne sais pas quelle dll c'est.
PS: mon code fonctionne sur des postes de travail bien configuré
Marsh Posté le 17-06-2003 à 08:43:23
Qu'est ce qu'un composant activeX, un composant activeX a t il besoin d'une bibliothèque particulière?
La réponse à ces questions m'aidera sûrement à comprendre le message d'erreur suivant:
un composant activeX ne peut pas créer un objet.