2010-03-16 4 views
4

En VB6, les utilisateurs reçoivent parfois cette erreur et je suis incapable de le reproduire.Quelles sont les causes VB6 « Erreur d'exécution « 5 »: non valide Appel de procédure ou argument »

Run-Time Error '5': Invalid Procedure Call or Argument

Je faisant référence à la « MSWord 10 Object Library » et parfois cette erreur se produit à un moment donné après l'application a ouvert MSWord 2002. Cependant, cette application a référencé la bibliothèque d'objets MSWord 10 pendant des années, et cette erreur vient de se produire au cours des derniers mois.

Je suppose que je vous ai présenté un bug quelque part, mais aucune idée de ce qui pourrait être la cause. L'erreur ne se produit pas très souvent et ne peut pas être reproduite par un utilisateur quand je suis là. L'erreur force l'application à se fermer complètement.

Les utilisateurs exécutent Windows XP

Répondre

5

De mémoire avec VB6 (en utilisant maintenant .net) cela peut pointer sur la machine des utilisateurs étant faible sur la mémoire ou que votre code a été incapable d'obtenir une poignée pour l'application de mot.

Si vous ne parvenez pas à générer le problème dans Visual Studio et que vous ne savez pas quelle ligne de votre code est à l'origine du problème, il est préférable d'ajouter un gestionnaire d'erreurs autour du code à l'origine du problème.

Au sommet de la sous qui a des problèmes mis

On Error GoTo MyErrorHandler 

puis au fond mis

On Error Goto 0 
    Exit Sub 
MyErrorHandler: 
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") at line " & Erl 

Plutôt que d'utiliser un MsgBox comme je l'ai ici considère écrire dans un fichier au lieu . Aussi pour Erl de travailler correctement en considérant numéroter chacune de vos lignes.

Pour VB6 un plug-in est des outils MZ link qui vous aidera à ajouter les numéros de gestion des erreurs et la ligne très facilement

+1

+1 Mettre dans les gestionnaires d'erreur et de mettre dans les numéros de ligne, savoir quelle ligne est de lancer l'erreur, et vous serez beaucoup mieux placé pour comprendre pourquoi cela se produit. – MarkJ

+0

Un exemple est de laisser le focus sur un contrôle caché. – danihp

0

Il peut être une question de « vitesse » dans laquelle l'utilisateur lance Word/votre formulaire plusieurs fois et déclencher une erreur d'affichage modale (http://support.microsoft.com/kb/242347). par exemple. Est-ce que vous bombardez l'application ou l'affichez dans une fenêtre de conteneur? Est-il possible qu'ils s'impatientent et cliquent sur le bouton/plus d'une fois? Essayez de cliquer sur le bouton plus d'une fois rapidement ou de régler la mise au point, en appuyant plusieurs fois sur Entrée.

Si c'est le cas, vous devrez soit gérer/bloquer les clics multiples (plus facile) ou précharger Office d'une manière ou d'une autre afin de minimiser le délai pendant l'initialisation de l'application.

+0

Le code est bombarder l'application en utilisant ce qui suit: Dim app Comme Word.Application = GetObject ("", "Word.Application") En fait, l'utilisateur signalant le problème le plus est l'exécution de l'application via Citrix. Il y a 350 utilisateurs au total, environ 100 utilisent l'application via Citrix – user52212

Questions connexes