[AccessD] Call Stack in VBA?

Heenan, Lambert Lambert.Heenan at AIG.com
Thu Jul 24 15:59:33 CDT 2008


This was the code for clsStack. Nothing Earth shattering...

Option Explicit

' A Stack implemented as a Collection
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

Lambert

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters
Sent: Thursday, July 24, 2008 12:15 PM
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



More information about the AccessD mailing list