Public Function AllProcs(ByVal strDatabasePath As String, ByVal strModuleName As String) Dim appAccess As Access.Application Dim db As Database Dim mdl As Module Dim lngCount As Long Dim lngCountDecl As Long Dim lngI As Long Dim strProcName As String Dim astrProcNames() As String Dim intI As Integer Dim strMsg As String Dim lngR As Long Set appAccess = New Access.Application appAccess.OpenCurrentDatabase strDatabasePath ' Open specified Module object. appAccess.DoCmd.OpenModule strModuleName ' Return reference to Module object. Set mdl = appAccess.Modules(strModuleName) ' Count lines in module. lngCount = mdl.CountOfLines ' Count lines in Declaration section in module. lngCountDecl = mdl.CountOfDeclarationLines ' Determine name of first procedure. strProcName = mdl.ProcOfLine(lngCountDecl + 1, lngR) ' Initialize counter variable. intI = 0 ' Redimension array. ReDim Preserve astrProcNames(intI) ' Store name of first procedure in array. astrProcNames(intI) = strProcName ' Determine procedure name for each line after declarations. For lngI = lngCountDecl + 1 To lngCount ' Compare procedure name with ProcOfLine property value. If strProcName <> mdl.ProcOfLine(lngI, lngR) Then ' Increment counter. intI = intI + 1 strProcName = mdl.ProcOfLine(lngI, lngR) ReDim Preserve astrProcNames(intI) ' Assign unique procedure names to array. astrProcNames(intI) = strProcName End If Next lngI strMsg = "Procedures in module '" & strModuleName & "': " & vbCrLf & vbCrLf For intI = 0 To UBound(astrProcNames) strMsg = strMsg & astrProcNames(intI) & vbCrLf Next intI ' Message box listing all procedures in module. Debug.Print strMsg appAccess.CloseCurrentDatabase appAccess.Quit Set appAccess = Nothing End Function
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter