Charlotte Foust
cfoust at infostatsystems.com
Thu Jul 24 11:44:23 CDT 2008
I wonder if he posted it on the L list? Anyhow, here's the code: ' Code starts - save as a Class module named clsStack '################################### Option Compare Database Option Explicit ' A Stack implemented as a Collection 'Example: ' Sub testStack() ' Dim stack As New clsStack ' Dim n As Integer ' Dim r As Variant ' stack.Push 1 ' stack.Push "One" ' stack.Push 2 ' stack.Push "Two" ' For n = 1 To 5 ' r = stack.Pop ' If IsNull(r) Then ' Debug.Print "Stack empty" ' Else ' Debug.Print r ' End If ' Next n ' Set stack = Nothing ' End Sub Dim modCollection As Collection Private Sub Class_Initialize() Set modCollection = New Collection End Sub Private Sub Class_Terminate() Set modCollection = Nothing End Sub Sub Push(vItem As Variant) If modCollection.Count = 0 Then modCollection.Add vItem Else modCollection.Add vItem, , , modCollection.Count End If End Sub Function Pop() As Variant If modCollection.Count = 0 Then Pop = Null Else Pop = modCollection(modCollection.Count) modCollection.Remove modCollection.Count End If End Function Charlotte -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Thursday, July 24, 2008 9:15 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Call Stack in VBA? Thanks Charlotte - I just checked the archives for clsStack, but no results came back. Do you have more information about what Lambert posted? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, July 24, 2008 10:18 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Call Stack in VBA? I don't know if you can get at the actual call stack, but you can use "push" methods to write a line to a collection, an xmlfile or even a straight text file and "pop" methods to remove the line after the call successfully executes. An error would result in the "pop" not being executed, giving you a list of steps that got you to the error. I used to do this years ago based on an article written for A97 (I think) that I adapted to my own uses. I created a CallStack class with push and pop methods, but it took a lot of work to pass the name of each routine into the stack since Access didn't give a simple method for retrieving the name of the procedure. I finally used a local constant, procName, in each routine and populated it when I built the routine. Actually, searching back through my archives, I find that Lambert posted a clsStack, which uses a collection, ages ago as well, so you might root through the archives for more. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Thursday, July 24, 2008 7:47 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Call Stack in VBA? What a great idea! I hope someone has your answer. You're right, it would be incredibly useful. On Thu, Jul 24, 2008 at 8:56 AM, Dan Waters <dwaters at usinternet.com> wrote: > Is there a way to use VBA to record the call stack? In my error > trapping routine, this would be incredibly helpful. > > Thanks! > Dan > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com