Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

Access 2007 e Access 2010, quando si creano, sulle maschere e i report, dei pulsanti con la creazione guidata dei controlli scrivono macro incorporate e non codice VBA, come le vecchie versioni di Access.

Dispongono anche di un pulsante che dovrebbe permettere la conversione delle macro incorporate in VBA. Dico dovrebbe perché in realtà questo pulsante non funziona né in Access 2007, né in Access 2012. La conversione funziona correttamente solo se le macro da convertire non si trovano all'interno di una maschera o di un report, ma sono salvate come elementi autonomi (e sono visibili nel riquadro di spostamento di Access).

Per superare questo problema, basta salvare  come macro autonome tutte le macro incorporate. Con Access 2007 è operazione abbastanza veloce. Aprite la maschera o il report con le macro da convertire in visualizzazione struttura e selezionate il controllo a cui è associata la macro (ne avete più di uno dovete ripetere più volte questa procedura) e, nella finestra delle proprietà, nella scheda Evento, fate clic sul pulsante a forma di tre posto accanto alla voce Su clic in modo da aprire l'editor della macro. Qui non dovete fare altro che premere il pulsante Salva con nome. Access vi mostrerà la finestra Salva con nome. Nella prima casella della finestra digitate un nome qualsiasi (tanto, una volta effettuata la conversione in VBA, elimineremo questa macro) e premete OK.

Tutto questo in Access 2010 non è possibile, perché nell'editor delle macro, quando si lavora con una macro incorporata su una maschera/report, il pulsante Salva con nome è disabilitato.

Questo non significa che non si possano salvare le macro incorporate come macro autonome, ma che l'operazione è decisamente più macchinosa. Ecco la soluzione che ho trovato io. Se qualcuno ne trova una più pratica, ben venga.

Bisogna chiudere temporaneamente la maschera/maschera che contiene le macro da convertire e  portatevi alla scheda Crea della barra multifunzione. Qui, nel gruppo Macro e codice, premete il pulsante Macro in modo da avviare la creazione di una nuova macro. Nell'editor delle macro, nel riquadro a destra fate clic sulla voce In questo database. Fate clic sul nome della maschera/report  che contiene la macro da convertire. Ora fate clic proprio sulla  macro da salvare come macro autonoma.

In questo modo, non salviamo la macro incorporata come macro esterna, ma creiamo una nuova macro con l'identico contenuto di quella creata dalla autocomposizione del pulsante.

Salvate questa nuova macro con il nome che preferite. Una volta convertite in VBA sarà comunque da cancellare. Una volta salvata, la macro comparirà nel riquadro di spostamento di Access.

A questo punto, comunque le abbiate attenute avete le macro che fanno funzionare i pulsanti della maschera/report salvate come oggetti autonomi. La maschera/report però continuano ad usare quelle incorporate. Occorre far si che usino le macro salvate come oggetto esterno. Se la maschera/o il report  è chiusa/o, riapritela/o in visualizzazione struttura. Selezionate il pulsante e scegliete la macro appena salvata dall'elenco associato alla voce su Clic, nella finestra delle proprietà. Ovviamente ripetete la procedura per tutte le macro da convertire.

Ora è possibile convertire correttamente queste macro in VBA usando il pulsante Converti macro della maschera in Visual Basic nel gruppo Strumenti della scheda Progettazione degli strumenti Maschera (o il pulsante Converti macro della maschera in Visual Basic, nel gruppo Macro della scheda Strumenti database in Access 2007).

Commenti   

Alessandra
#2 Alessandra 2017-07-26 11:23
ottimo, sono contenta!
Citazione
beeth
#1 beeth 2017-07-25 22:24
alessandra sei un mito.
Oggi, a tua insaputa, mi hai salvato ben due volte.
Grazie
SAL
Citazione
Joomla templates by a4joomla