Newsgroup: it.comp.appl.access
Titolo: Documentare Funzioni e Sub

Vorrei salvare in una tabella l'elenco delle funzioni (e argomenti)
utilizzate in un database , per poi agggiungere in altri campi della
tabella descrizioni sulla funzionalità .
Similmente per le sub .
Qualcuno ha idea di come fare ?

 ha scritto nel messaggio 
news:1143189799....@i40g2000cwc.googlegroups.com...


1-Ogni modulo è esportabile in formato testo...
2-Copia e incolla....in campi memo
3-Altre procedure abbastanza complesse se non conosci il VBA.
Ciao, Carlo

 ha scritto nel messaggio


--------------
dim cat1 as adox.catalog
dim proc1 as adox.procedure
set cat1= new adox.catalog
cat.activeconnection=currentproject.connection
for each proc1 in cat1.procedures
    debug.print 
proc1.name
next proc1
set cat1=nothing
Sib
-- 
http://www.gestionedati.com
 

 cat.activeconnection=currentproject.connection
CUT
cat1...
ovviamente.
Sib
-- 
http://www.gestionedati.com
 

 set cat1=nothing
Restituisce un incompleto elenco di Report, Form e Query
ma non una procedura.
Non è mica colpa tua: mai trovato una procedura ADOX
che funzioni per il verso giusto.
Bruno 

 che funzioni per il verso giusto.
In realtà sono stato un po' pirla perchè ricordavo l'insieme procedures ma 
non ricordavo cos'era.
Non restituisce affatto un elenco incompleto di ciò che dici come non è 
affatto vero ciò che dici di adox, solo che bisogna sapere come funziona e 
cosa si sta facendo.
l'insieme procedures restituisce le "procedure" dell'insieme adox sono 
alcuni tipi di query eccettuate le viste.
Sib
-- 
http://www.gestionedati.com
 

 ha scritto nel messaggio


-------------
Con l'aiuto dell'help di access di cui ho riadattato il codice:
Public Function ElencoProc()
Dim proc1 As Procedure
Dim ogg1 As AccessObject
Dim mod1 As Module
For Each ogg1 In CurrentProject.AllModules
    Debug.Print "-Modulo: " & ogg1.Name
    AllProcs ogg1.Name
Next ogg1
For Each ogg1 In CurrentProject.AllForms
    Debug.Print "-Maschera: " & ogg1.Name
    AllProcs ogg1.Name, True
Next ogg1
End Function
Public Function AllProcs(ByVal strModuleName As String, Optional EMask As 
Boolean = False)
    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
    ' Open specified Module object.
    If EMask = True Then
        DoCmd.OpenForm strModuleName
        If Forms(strModuleName).HasModule = False Then
            DoCmd.Close acForm, strModuleName
            Exit Function
        End If
        Set mdl = Forms(strModuleName).Module
    Else
        DoCmd.OpenModule strModuleName
        ' Return reference to Module object.
        Set mdl = Modules(strModuleName)
    End If
    ' 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
    If EMask = True Then DoCmd.Close acForm, strModuleName
    ' Message box listing all procedures in module.
    Debug.Print strMsg
End Function
Sib
-- 
http://www.gestionedati.com