Frage

Wäre es möglich, die CallStack in VBA für MS Access 2003 zu sehen? Das heißt, wäre es möglich, aus, um zu sehen, was procedure oder function andere function genannt wurde?

War es hilfreich?

Lösung

Es gibt keinen programmatischen Weg in VBA den Call-Stack zu sehen, die ich kenne. Die übliche Lösung für dieses Problem ist ein gewisse Struktur verwenden Aufruf von Funktionen zu verfolgen, aber es scheint immer wie eine Flickschusterei zu mir, und wirklich nur dann von Nutzen, wenn die Programmierung (nicht zur Laufzeit), wobei in diesem Fall scheint es mir, dass die VBE des eingebaute Fähigkeit, ausreichend, um den Call-Stack ist für das sehen.

Und BTW, habe ich den Call-Stack-Taste auf meiner VBE-Symbolleiste immer, da es eines der am häufigsten verwendeten Funktionen für mich. Ich füge auch die Kompilierung-Taste - ich glaube, es ist verrückt, dass sie standardmäßig nicht auf der Symbolleiste ist, weil es Menschen Code ermutigt, ohne jemals einen Compiler zu erzwingen. Dann wieder, Access 2000 nicht einmal Option Explicit verwendete standardmäßig (angeblich für die Übereinstimmung mit den anderen Anwendungen mit der VBE - mit anderen Worten, verdummt Zugang, um es im Einklang mit Apps zu machen, die nicht annähernd so Code- sind schwer).

Aber ich schweife ab ...

Andere Tipps

Zur Laufzeit Menü Ansicht -.> Anruf Stack (oder drücken Sie STRG + L)

Schließlich einen optionalen Parameter an die Funktion hinzufügen, und übergeben diese Weise der Anrufer nennen. Für Formulare können Sie Me.Name als Parameter verwenden.

Ja, es ist möglich, aber es ist nicht ganz usefull!

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

Vor der Verwendung GetCallStackCount und GetCallStackFunction Anruf SetMode (2) und nach SetMode (1).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top