2010-02-03 3 views
1

J'ai rencontré un problème étrange lors de la tentative d'enregistrement d'un contrôle ActiveX fourni par le fournisseur sur deux ordinateurs différents. Sur un ordinateur, je peux enregistrer la pièce en utilisant regsvr32, puis l'utiliser dans un formulaire Access 2007 sans problèmes. Sur l'autre ordinateur, après avoir enregistré la même DLL, il n'est tout simplement pas reconnu comme une partie ActiveX valide par Access 2007 ou tout autre programme Office 2007.Impossible d'enregistrer un contrôle ActiveX sur un seul ordinateur

  • La partie ActiveX est contenue dans une DLL unique. Je ne manque pas de fichier supplémentaire sur l'un des ordinateurs.
  • J'ai co-vérifié la version exacte de la DLL sur les deux ordinateurs en utilisant md5sum. Les deux fichiers DLL sont exactement identiques.
  • J'ai co-vérifié toutes les entrées de registre générées lorsque la pièce est enregistrée, en utilisant l'utilitaire Nilsoft ActiveX Helper. Les entrées sont identiques.
  • J'ai vérifié Access pour m'assurer que la pièce avait une entrée de référence qui pointait vers la DLL.
  • J'ai vérifié que l'emplacement de la DLL était spécifié en tant qu'emplacement approuvé dans Access.

Malheureusement, je ne suis pas assez expert COM pour savoir si oui ou non je néglige quelque chose. Toute idée supplémentaire serait appréciée.

+1

+1 pour faire vos devoirs. –

+0

Avez-vous vérifié le journal des événements? Peut-être une erreur consignée par Access quand il essaie de charger la DLL? – jac

+0

Sur l'ordinateur problématique, avez-vous vérifié pour voir si le VBA est vissé? Parce que vous avez mentionné sur l'ordinateur de travail, Access 2007 peut accéder à l'activeX ... ressemble à Office 2007 doit être réinstallé ou réparé ... Je serais enclin à suspecter l'automatisation VBA ... vaut la peine d'essayer ... – t0mm13b

Répondre

0

OK, le tir total dans l'obscurité, mais nous avons quelques ordinateurs dans notre organisation, le système d'exploitation est assez serré. Lorsque nous exécutons le programme d'installation, ils s'exécutent et enregistrent nos composants ActiveX, mais le premier fois que nous exécutons le programme, il doit être en tant qu'administrateur. Après cela, l'utilisateur normal est capable d'exécuter le programme.

+0

Je pense que j'ai toujours exécuté le logiciel en tant qu'administrateur, mais je ne suis pas sûr. Bon point. – mkClark

0

Vous pouvez essayer un script VBS simple pour vérifier que le contrôle peut être créé. À l'aide du Bloc-notes (ou similaire), enregistrez ce qui suit en tant que test.vbs, puis double-cliquez dessus pour l'exécuter.

set oTest = CreateObject("<YOUR PROGID HERE>") 

MsgBox ("All Done Successfully") 

Vous devriez obtenir une erreur raisonnablement descriptive ou "Tout a bien été fait".

Ceci indiquerait au moins s'il s'agit d'un problème spécifique à l'ensemble du système ou à un bureau. Et si vous obtenez une erreur, cela pourrait bien indiquer le problème réel.

OTH, si vous n'obtenez pas d'erreur, vous avez probablement un problème d'installation d'Office qui peut être résolu par une réinstallation.

Questions connexes