是否可以看到的MS Access 2003在VBA中CallStack?也就是说,将有可能从什么procedure看到或function另一function被称为?

有帮助吗?

解决方案

有在VBA没有编程的方式来查看调用堆栈,我知道的。通常解决这个问题是使用一些结构来跟踪调用的功能,但它似乎总是像一个杂牌对我来说,和编程(不是在运行时),只有当真正使用的,在这种情况下,在我看来,该VBE的内置功能对于查看调用堆栈是足够的。

和,顺便说一句,我总是把我的VBE工具栏上的调用堆栈按钮,因为它是对我来说最常用的功能之一。我还添加编译按钮 - 我认为这是疯狂的,这不是在默认情况下工具栏上的,因为它鼓励人们码而没有强制编译。话又说回来,Access 2000中甚至没有使用选项默认情况下(据称与使用VBE的其他应用程序的一致性明确 - 换句话说,哑下来访问,以使其符合那些几乎没有代码 - 应用重)。

但是,我离题...

其他提示

在运行时,查看菜单 - >调用堆栈(或按CTRL + L)

最后,一个可选的参数添加到您的功能,并通过呼叫方姓名的方式。为形式,则可以使用Me.Name作为参数。

是的,它是可能的,但它不是相当有用!

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

在使用GetCallStackCount和GetCallStackFunction呼叫SetMode(2),和SetMode后(1)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top