Newsgroup: it.comp.appl.access
Titolo: chiamare una funzione da macro

Ho una funzione (o "sub" non sò quale sia il termine corretto) che se 
chiamata da codice funzione perfettamente:
Call PrintReport("RPT_ETICHETTE")
vorrei "chiamare" la stessa funzione da una macro ma non capisco come.
nelle macro esiste l'azione "esegui codice" ma poi cosa scrivo? ho provato 
tutto ma non riesco.
mi aiutate?
 
 

 scrivo?
 
Per poter chiamarla da un macro la procedura "PrintReport"
dev'essere una funzione (non una sub) e dev'essere
dicchiarata Public, cioè raggiungibile dappertutto.
 
Se non riesci, incolla la prima riga della procedura "PrintReport"
nel prossimo messaggio, scrivi dove si trova questa procedura
(nel modulo di una maschera o in un modulo che vedi nella
finestra database o ...) e quale versione di Access usi.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

 
Per poter chiamarla da un macro la procedura "PrintReport"
dev'essere una funzione (non una sub) e dev'essere
dicchiarata Public, cioè raggiungibile dappertutto.
 
Se non riesci, incolla la prima riga della procedura "PrintReport"
nel prossimo messaggio, scrivi dove si trova questa procedura
(nel modulo di una maschera o in un modulo che vedi nella
finestra database o ...) e quale versione di Access usi.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
ho un "Modulo1" (sta nel riquadro di spostamento)
che contiene:
Sub PrintReport(ByVal rpt_etichetta As String)
On Error GoTo PrintReportErrore
 
Dim StringaTitolo As String
StringaTitolo = "Stampa Report: " & "rpt_etichetta"
 
Dim Copie As Integer
Copie = InputBox("Inserire il numero di copie da stampare", StringaTitolo, 
1)
 
If Copie <> 0 Then
    Call DoCmd.OpenReport("rpt_etichetta", acViewPreview, , , acIcon)
    DoCmd.PrintOut , , , , Copie
    DoCmd.Close
Else
    Exit Sub
End If
 
PrintReportExit:
    Exit Sub
PrintReportErrore:
    MsgBox Err.DESCRIPTION
    Resume PrintReportExit
End Sub
 
se chiamo questa funzione (serve a stampare n copie di un report) da codice 
con:
Call PrintReport("RPT_ETICHETTA")
funziona, ma io vorrei eseguirlo da macro perchè  voglio impostare una 
condizione.
 
 
 

 condizione.
 
Devi cambiare tutte le presenze della parola "Sub" nella
procedura a "Function", cioč:
 
Function PrintReport(ByVal rpt_etichetta As String)
...
Exit Function
...
Exit Function
...
End Function


 condizione.
 
Devi cambiare tutte le presenze della parola "Sub" nella
procedura a "Function", cioè:
 
Function PrintReport(ByVal rpt_etichetta As String)
...
Exit Function
...
Exit Function
...
End Function
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
Grazie, funziona benissimo!!!
 

     Call DoCmd.OpenReport("rpt_etichetta", acViewPreview, , , acIcon)
 
Semplicemente:
DoCmd.OpenReport "rpt_etichetta", acViewPreview, , , acIcon
 
Bruno
 
 

 ...
 
Davvero?
Qual'è il tuo trucco per chiamare una Sub con "EseguiCodice"?


 Qual'è il tuo trucco per chiamare una Sub con "EseguiCodice"?
 
Che cos'è "EseguiCodice"?
Mi pare si stia parlando di eseguire una sub da un'altra sub.
Io intendo ciò e tu forse intendi altro.
Sicuramente intendiamo cose diverse, non v'è alcun dubbio.
 
Bruno
 
PS
Lascia che corregga il tuo pur ottimo italiano:
" qual è " e non  " qual'è ".
Si tratta di troncamento e non di elisione (cose strane della nostra 
grammatica).
 
 

 nostra grammatica).
 
Grazie molto per l'indicazione!
