Pergunta

Seria possível ver o CallStack em VBA para MS Access 2003? Ou seja, seria possível ver do que procedure ou function outra function foi chamado?

Foi útil?

Solução

Não há nenhuma maneira programática em VBA para ver a pilha de chamadas que eu saiba. A solução usual para este problema é usar alguma estrutura para rastrear chamar de funções, mas sempre parece ser um truque para mim, e realmente de uso somente quando a programação (não em tempo de execução), em cujo caso parece-me que o VBE do built-in capacidade de ver a pilha de chamadas é suficiente.

E, BTW, eu sempre colocar o botão de pilha de chamadas na minha barra de ferramentas VBE, já que é uma das funções mais utilizadas para mim. Eu também adicionar o botão de compilação - Eu acho que é uma loucura que não é na barra de ferramentas por padrão porque ele incentiva as pessoas a código sem nunca forçar uma compilação. Então, novamente, Access 2000 nem sequer usar Option Explicit por padrão (supostamente para consistência com outros aplicativos usando o VBE - em outras palavras, emburrecer acesso, a fim de torná-lo compatível com aplicativos que não são quase tão code- pesado).

Mas estou divagando ...

Outras dicas

Durante a execução, o menu Ver -.> Chamada Stack (ou pressione CTRL + L)

Por fim, adicione um parâmetro opcional para a sua função, e passar o nome do chamador assim. Para formulários, você pode usar Me.Name como parâmetro.

Sim, é possível, mas não é muito útil!

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

Antes de usar GetCallStackCount e GetCallStackFunction chamada SetMode (2), e depois de SetMode (1).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top