BOGUE : Message d'erreur "La tentative d'accès à la méthode a échoué" lorsque vous utilisez une référence à la mauvaise bibliothèque d'objets Microsoft Forms 2.0

Traductions disponibles Traductions disponibles
Numéro d'article: 824009 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Symptômes

Dans un projet Visual Studio .NET contenant une référence à la bibliothèque d'objets Microsoft Forms 2.0, un message d'erreur semblable au suivant peut s'afficher :
System.MethodAccessException: "La tentative d'accès à la méthode a échoué."

Cause

Lorsque vous utilisez la boîte de dialogue Ajouter une référence pour ajouter une référence à la bibliothèque d'objets Microsoft Forms 2.0, vous pouvez noter la présence de deux entrées pour la Bibliothèque d'objets Microsoft Forms 2.0. Ces deux entrées font référence au fichier FM20.dll.

Vous devez sélectionner la première entrée Bibliothèque d'objets Microsoft Forms 2.0 dans la liste car il s'agit de la référence à l'assembly PIA (Primary Interop Assembly). Si vous sélectionnez la deuxième entrée Bibliothèque d'objets Microsoft Forms 2.0, votre application peut se comporter de manière imprévisible.

Résolution

Pour résoudre ce problème, procédez comme suit :
  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la référence MSForms, puis cliquez sur Supprimer.
  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Références, puis cliquez sur Ajouter une référence.

    La boîte de dialogue Ajouter une référence s'affiche.
  3. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet COM.
  4. Dans la liste des composants, cliquez sur la première entrée nommée Bibliothèque d'objets Microsoft Forms 2.0.

    Remarque Il doit s'agir de la version de l'assembly PIA. Si une seule entrée Bibliothèque d'objets Microsoft Forms 2.0 figure dans la boîte de dialogue Ajouter une référence et que celle-ci n'est pas la version de l'assembly PIA, vous devez tout d'abord installer l'assembly PIA à partir du CD-ROM Microsoft Office System 2003.
  5. Cliquez sur Sélectionner pour ajouter l'entrée à la liste des composants sélectionnés.
  6. Cliquez sur OK pour fermer la boîte de dialogue Ajouter une référence.
  7. Dans l'Explorateur de solutions, cliquez sur la référence MSForms que vous avez ajoutée à l'étape 5. Vérifiez que la propriété Copy Local a la valeur False et que la propriété Path pointe vers l'assembly PIA (comme décrit dans la section "Plus d'informations").
  8. Supprimez l'ancien fichier Interop.MSForms.dll du dossier Obj qui se trouve dans votre dossier d'application.

Plus d'informations

Lorsque vous utilisez une référence à la version de l'assembly PIA de la bibliothèque d'objets Microsoft Forms 2.0, vous remarquerez les propriétés suivantes pour la référence MSForms dans l'Explorateur de solutions :
  • Copy Local: False
  • Path: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
Si la propriété Path pointe vers un dossier dans le Global Assembly Cache (GAC), vous avez la bonne référence (assembly PIA).

Si la référence à la bibliothèque d'objets Microsoft Forms 2.0 a été ajoutée incorrectement (ou si l'assembly PIA n'est pas installé), les propriétés de MSForms s'affichent comme suit :
  • Copy Local: True
  • Path: C:\mon_application\obj\Interop.MSForms.dll
Notez que Visual Studio .NET crée un assembly IA (Interop Assembly) et le copie dans un dossier de votre projet. Si ce problème se produit, vous utilisez le mauvais assembly.

Si votre solution utilise la mauvaise référence MSForms, vous pouvez rencontrer des problèmes lorsque vous essayez d'utiliser des objets de cette bibliothèque. Par exemple, vous essayez d'utiliser la fonction FindControl dans un projet de classeur Excel créé à l'aide de Visual Studio Tools pour Microsoft Office System. (Cela est le cas si vous souhaitez capturer l'événement Click d'un contrôle CommandButton dans la feuille de calcul.) Si la solution utilise la mauvaise référence MSForms, l'événement Click du contrôle CommandButton ne se déclenche pas lorsque l'utilisateur clique sur le bouton sur la feuille de calcul, et ce sans qu'aucune erreur ne semble s'être produite dans le code. Si vous utilisez un gestionnaire d'exceptions lorsque vous tentez d'assigner votre objet CommandButton, le message d'erreur répertorié dans la section "Symptômes" s'affiche.

Propriétés

Numéro d'article: 824009 - Dernière mise à jour: vendredi 9 janvier 2004 - Version: 1.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Office Édition Professionnelle 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
Mots-clés : 
kberrmsg kbbug kbpia kbnofix KB824009
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com