CREARE MACRO ESECUZIONE MODULI SUB

Anonimo
2013-12-16T14:03:11+00:00

salve a tutti, ho dei moduli vba (sub, codice, end sub) da mandare in esecuzione attraverso un pulsante su maschera.

Per il momento ho ovviato cosi:

-ho creato una macro con l'opzione esegui codice

-precedemente ho sostiuito la voce subnei moduli con function(perchè diversamente non viene riconosciutain macro

-a questo punto in maschera creo il pulsante in modalità guidata, selezionando da macro(indicola macro che ho appena creata)

Non so se la sostituizone di sub con function possa determinare degli errori.

 epoi non so se ci sono sistemi più corretti.

Come posso fare?

grazie Gianfranco

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-12-16T14:34:09+00:00

Ciao Gianfranco,

scusami non ti ho più risposto perchè credevo avessi risolto.

Sull'evento del pulsante Click invece di una macro (io non le uso se non costretto) crea una routine evento (Vba) e, al suo interno, richiama semplicemente la Sub con il suo nome ad es. :

Private Sub Comando0_Click()

   nome_della_Sub

End Sub

O se vuoi mantene il codice coma Function:

Private Sub Comando0_Click()

  Risultato =  nome_della_Function()

End Sub

o anche

Private Sub Comando0_Click()

  If  nome_della_Function() = 0 Then       ' Se tutto è andato bene ....

End Sub

La differenza di una Sub e di una Function è che la prima non consente passaggio di parametri e non ti ritorna nulla.

La Function invece tra parentesi consente di passare al codice dei parametri e di ritorno riporta un valore infatti, nell'esempio che ti ho fatto, ho usato Risultato per ottenere il valore di ritorno.

Se decidi di usare la Function devi quindi prevedere all'uscita dal codice ad esempio

se tuuto è andato bene

nome_della_Function = 0

se hai trovato anomalie

nome_della_Function = -1

Fammi sapere

Mimmo

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-12-18T12:30:30+00:00

    La differenza di una Sub e di una Function è che la prima non consente passaggio di parametri e non ti ritorna nulla.

    La Function invece tra parentesi consente di passare al codice dei parametri e di ritorno riporta un valore infatti, ....

     

    Preciso solamente che anche le sub consentono il passaggio di parametri esattamente come le function, ma a differenza  delle function non ritornano risultati.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-12-16T23:43:00+00:00

    Grazie mille

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-12-16T15:28:56+00:00

    Và tutto bene dal momento che funziona :-)

    Se pensi di utilizzare Access anche in futuro ti consiglio di utilizzare il codice Vba piuttosto che le macro, più in là scoprirai i molti vantaggi che ne avresti.

    Mentre una Sub la esegui con F8 (step by step) o con F5 (Run), per eseguire una Function devi lanciarla ad esempio dalla finestra "Immediata" digitando (su Vba Visualizza - Finestra Immediata):

    ? nome_della_function()

    Ciao alla prossima

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-12-16T14:49:11+00:00

    Grazie Mimmo.

    Ho creato una macro perchè nella creazione guidata delle macro, posso eseguire più azioni con una sola macro, quindi oltre al codice eseguire più azioni, per esempio esegui query creaz.., esegui query accodamento, ecc..

    Quello che ho fatto e sembra funzionare  è sostituire alla parola sub e end sub nel codice VBA  function e end function, se li eseguo direttamente dal modulo non funzionano, se li eseguo dalla macro o dal pulsante relativo sembra tutto ok.

    Questa operazione la ho ripetuta per più moduli, e query.

    A questa maco ho collegato un pulsante.

    In questo modo creo dei danni/problemi?

    La risposta è stata utile?

    0 commenti Nessun commento