Charlotte Foust
cfoust at infostatsystems.com
Tue Oct 19 16:00:01 CDT 2004
Only if you really *like* working with methods like ProcOfLine! ;-}
Here's some I wrote years ago to print a list of event procedures in a
form module to the immediate window. It tests for the existence of
control event procedures in the form and prints starting line of
existing procedures or MISSING for missing procedures. Now THAT'S ugly!
Function TestEventProcs(ByVal strFrm As String)
On Error Resume Next
Dim frm As Form
Dim mdl As Module
Dim ctl As Control
Dim prp As dao.Property
Dim strSub As String
Dim lngSLine As Long
Dim lngSCol As Long
Dim lngELine As Long
Dim lngECol As Long
Dim intPfx As Integer
'make sure the form and its module are open
If Not IsLoaded(strFrm) Then
DoCmd.OpenForm strFrm, acDesign
End If
Set frm = Forms(strFrm)
Set mdl = Modules("Form_" & strFrm)
If Err <> 0 Then
DoCmd.OpenModule "Form_" & strFrm
Set mdl = Modules("Form_" & strFrm)
End If
'loop through the controls
'looking for event procedures
For Each ctl In frm.Controls
For Each prp In ctl.Properties
If prp.name Like "On*" Or _
prp.name Like "After*" Or _
prp.name Like "Before*" Then
'store the length of the prefix
If prp.name Like "On*" Then
intPfx = 2
ElseIf prp.name Like "After*" Then
intPfx = 5
ElseIf prp.name Like "Before*" Then
intPfx = 6
End If
If prp.Value = "[Event Procedure]" Then
'initialize the line and colum variables
'for the proc find in the module
lngSLine = 0
lngSCol = 0
lngELine = 0
lngECol = 0
strSub = ctl.name & "_" & Mid(prp.name, intPfx + 1)
'look for the event procedure in the module
If mdl.Find(strSub, lngSLine, lngSCol, lngELine, lngECol) Then
'if event procedure found,
'print its name and starting line
Debug.Print strSub & "() Exists"
Debug.Print , "Starts at line: " & lngSLine
Else
'otherwise, print name and MISSING
Debug.Print strSub & "() Is MISSING"
End If
End If
End If
Next prp
Next ctl
Set prp = Nothing
Set ctl = Nothing
Set mdl = Nothing
Set frm = Nothing
End Function
Charlotte Foust
-----Original Message-----
From: Michael R Mattys [mailto:michael.mattys at adelphia.net]
Sent: Tuesday, October 19, 2004 12:58 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Events Collection??
> If you want to itemize the event procedures, you need to work with the
> module, not the form itself. It's very ugly code.
>
> Charlotte Foust
Ugly code? Should I defend myself? :)
En Garde, Charlotte Foust!
----
Michael R. Mattys
Mattys MapLib for Microsoft MapPoint
http://www.mattysconsulting.com
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com