Question

Serait-il possible de voir le CallStack en VBA pour MS Access 2003? C'est-à-dire, serait-il possible de voir de ce que procedure ou une autre function function a été appelé?

Était-ce utile?

La solution

Il n'y a aucun moyen de programmation en VBA pour afficher la pile d'appel que je connaisse. La solution habituelle à ce problème est d'utiliser une structure pour suivre l'appel des fonctions, mais il semble toujours comme une bidouille pour moi, et vraiment utile que lors de la programmation (non à l'exécution), auquel cas il me semble que ce VBE capacité intégrée pour voir la pile d'appel suffit.

Et, d'ailleurs, je mets toujours le bouton de pile d'appel sur ma barre d'outils VBE, car il est l'une des fonctions les plus fréquemment utilisées pour moi. J'ajoute également le bouton de compilation - Je pense qu'il est fou que ce n'est pas la barre d'outils par défaut, car il encourage les gens à code sans jamais forcer une compilation. Là encore, Access 2000 n'a même pas utiliser l'option explicite par défaut (soi-disant souci de cohérence avec les autres applications utilisant le VBE - autrement dit, muet d'accès vers le bas afin de le rendre compatible avec les applications qui ne sont pas presque aussi code- lourds).

Mais je digresse ...

Autres conseils

Lors de l'exécution, le menu Affichage -.> Pile d'appels (ou appuyez sur CTRL + L)

Finalement, ajoutez un paramètre optionnel à votre fonction, et passer le nom de l'appelant de cette façon. Pour les formes, vous pouvez utiliser Me.Name comme paramètre.

Oui, il est possible, mais il est pas tout à fait utile!

Private Declare Sub SetMode Lib "vba332.dll" Alias "EbSetMode" (ByVal lngMode As Long)
Private Declare Function GetCallStackCount Lib "vba332.dll" Alias "EbGetCallstackCount" (lngCount As Long) As Long
Private Declare Function GetCallStackFunction Lib "vba332.dll" Alias "EbGetCallstackFunction" (ByVal Lvl As Long, ByRef strBase As String, ByRef strModule As String, ByRef strFunction As String, ByRef Done As Long) As Long

Avant d'utiliser GetCallStackCount et GetCallStackFunction appel setMode (2), et après setMode (1).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top