Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

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

Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
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

ID d'article : 824009 - Dernière mise à jour : 01/09/2004 18:43:00 - Révision : 1.1

  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Office Édition Professionnelle 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
  • kberrmsg kbbug kbpia kbnofix KB824009
Commentaires
Confidentialité et cookies
  • Marques commerciales
  • © 2015 Microsoft