Newsgroup: it.comp.appl.access
Titolo: nomi macro e nomi funzioni

salve
con le seguenti funzioni stampo le macro e i moduli presenti nel db:
--------------------
Dim db As Database, ctr As Container, doc As Document
Set db = CurrentDb
Set ctr = db.Containers("Scripts") 'set a variabile to the Macro container.
For Each doc In ctr.Documents
Debug.Print doc.Name
Next doc
-------------------
Dim db As Database, ctr As Container, doc As Document
Set db = CurrentDb
Set ctr = db.Containers("Modules") 'set a variabile to the Modules
container.
For Each doc In ctr.Documents
Debug.Print doc.Name
Next doc
--------------------
è possibile stampare ( Debug.Print )  i nomi e le azioni delle macro e i
nomi delle Funzioni e Sub presenti nei moduli ?
giuseppe

 ha scritto nel messaggio
news:WrN_5.1969$ag5.1...@twister1.tin.it...


 ha scritto nel messaggio
news:WrN_5.1969$ag5.1...@twister1.tin.it...

Scusate mi è partito il dito prima del cervello (quest'ultimo da un bel
pezzo!)...
Volevo rispondere che l'esempio che hai indicato ottieni già quello che
chiedi e nell'help alla voce 'Insieme Modules' puoi trovare un esempio di
lettura delle righe di codice. Per le macro non trovo nulla del genere
nell'help...
Ciao.

 ha scritto nel messaggio
news:91kvqq$io0$1...@suite03.caspur.it...

Grazie ma purtroppo non riesco a stampare i nomi delle routine (Function o
Sub) presenti nei moduli.
Penso che sia possibile in quanto per le macro si può avere l'elenco dei
nomi per es. nella proprietà Azione nella personalizzazione delle barre dei
menù;
per le routine l'elenco appare es. in una macro , Azione: Esegui codice
Nome funzione: attraverso il Generatore di espressioni leggi l'elenco dei
nomi delle routine
a me necessita stampare i nomi con Debug.Print
Continuo la ricerca
   giuseppe


Presa dall'help
Function TutteRoutine(strNomeModulo As String)
    Dim mdl As Module
    Dim lngConteggio As Long, lngConteggioDichiarazione As Long, lngI As
Long
    Dim strNomeRoutine As String, astrNomiRoutine() As String
    Dim intI As Integer, strMsg As String
    Dim lngR As Long
    ' Apre un oggetto Module specifico.
    DoCmd.OpenModule strNomeModulo
    ' Restituisce il riferimento all'oggetto Module.
    Set mdl = Modules(strNomeModulo)
    ' Conta le righe del modulo.
    lngConteggio = mdl.CountOfLines
' Conta le righe della sezione Dichiarazione contenuta nel modulo.
    lngConteggioDichiarazione = mdl.CountOfDeclarationLines
    ' Determina il nome della prima routine.
    strNomeRoutine = mdl.ProcOfLine(lngConteggioDichiarazione + 1, lngR)
    ' Inizializza una variabile contatore.
    intI = 0
    ' Ridimensiona la matrice.
    ReDim Preserve astrNomiRoutine(intI)
    ' Memorizza il nome della prima routine della matrice.
    astrNomiRoutine(intI) = strNomeRoutine
' Determina il nome della routine per ciascuna riga successiva alle
dichiarazioni.
    For lngI = lngConteggioDichiarazione + 1 To lngConteggio
        ' Confronta il nome della routine con il valore della proprietà
ProcOfLine.
        If strNomeRoutine <> mdl.ProcOfLine(lngI, lngR) Then
            ' Incrementa il contatore.
            intI = intI + 1
            strNomeRoutine = mdl.ProcOfLine(lngI, lngR)
            ReDim Preserve astrNomiRoutine(intI)
            ' Assegna nomi di routine univoci alla matrice.
astrNomiRoutine(intI) = strNomeRoutine
        End If
    Next lngI
    strMsg = "Routine nel modulo '" & strNomeModulo & "': " _
        & vbCrLf & vbCrLf
    For intI = 0 To UBound(astrNomiRoutine)
        strMsg = strMsg & astrNomiRoutine(intI) & vbCrLf
    Next intI
    ' Finestra di dialogo che elenca tutte le routine del modulo.
    MsgBox strMsg
End Function
Per le macro non so...
Ciao Nicola
email: metti inwind al posto  di NOSPAM

"Nicola Ardito" <men...@NOSPAM.it> ha scritto nel messaggio
news:91hug8$fn1$1...@nread1.inwind.it...

ho effettuato parecchie ricerche ma la Proprietà ProcOfLine non sono
riuscito ad incrociala
grazie per la segnalazione
continuo le ricerche per i nomi delle macro
giuseppe