So prüfen Sie den Aufruf-Stack

8

Wäre es möglich, die CallStack in VBA für MS Access 2003 zu sehen? Das heißt, wäre es möglich zu sehen, von welchem procedure oder function ein anderer function aufgerufen wurde?

    
THEn 25.03.2009, 18:44
quelle

4 Antworten

3

In VBA gibt es keinen programmatischen Weg, um den mir bekannten Call-Stack zu sehen. Die übliche Lösung für dieses Problem ist, eine Struktur zu verwenden, um das Aufrufen von Funktionen zu verfolgen, aber es erscheint mir immer wie ein Kludn, und wirklich nur beim Programmieren (nicht zur Laufzeit), in diesem Fall scheint es mir, dass die VBE's eingebaute Fähigkeit zum Sehen der Aufrufliste ist ausreichend.

Und, BTW, ich habe immer die Call-Stack-Taste auf meiner VBE-Symbolleiste, da es eine der am häufigsten verwendeten Funktionen für mich ist. Ich füge auch die Kompilierschaltfläche hinzu - ich denke, es ist verrückt, dass es standardmäßig nicht in der Werkzeugleiste ist, da es Leute dazu ermutigt, zu programmieren, ohne jemals eine Kompilierung zu erzwingen. Außerdem hat Access 2000 Option Option Explicit nicht standardmäßig verwendet (angeblich aus Gründen der Konsistenz mit den anderen Apps, die das VBE verwenden - d. H. Access herunterfahren, um es mit Apps in Einklang zu bringen, die nicht annähernd so schwer).

Aber ich schweife ab ...

    
David-W-Fenton 26.03.2009, 04:11
quelle
9

Zur Laufzeit, Menü Ansicht - & gt; Rufen Sie Stack auf (oder drücken Sie STRG + L).

    
shahkalpesh 25.03.2009 18:50
quelle
2

Fügen Sie schließlich einen optionalen Parameter zu Ihrer Funktion hinzu und übergeben Sie den Namen des Aufrufers auf diese Weise. Für Formulare können Sie Me.Name als Parameter verwenden.

    
Patrick Honorez 01.03.2012 10:44
quelle
0

Ja, es ist möglich, aber es ist nicht sehr nützlich!

%Vor%

Bevor Sie GetCallStackCount und GetCallStackFunction verwenden, rufen Sie SetMode (2) und nach SetMode (1) auf.

    
user4594176 22.02.2015 16:48
quelle