Creazione di una macro semplice con Access
Impariamo come creare una macro semplice con Microsoft Access. Prendiamo familiarità con l'ambiente di progettazione di una macro.
La finestra Macro
Aprire il database di esempio GestioneColture.mdb e chiudere la maschera pannello comandi principale in modo da ritornare alla finestra Database.
Come si scoprirà un po’ più avanti in questo tutorial, ogni volta che si apre questo database va in esecuzione una speciale macro di nome Autoexec.
Questa macro verrà esaminata in dettaglio per vedere come nasconde alcuni elementi e come apre e ingrandisce la maschera principale per l’immissione dei dati per avviare l’applicazione.
Fare clic sulla scheda Macro nella finestra Database e con un clic sul pulsante Nuovo aprire una nuova finestra Macro simile a quella mostrata nella figura 1.
Nella parte superiore della finestra verrà definita la nuova macro, mentre inquella inferiore si immettono le impostazioni, chiamate'argomenti', per leazioni selezionate per la macro.
La parte superiore contiene almeno due colonne: Azione e Commento.
Le quattro colonne della figura si possono visualizzare facendoclic sui pulsanti Nomi macro e Condizioni sulla barra degli strumenti.
Si noti che l’area nella parte inferiore destra della finestra Macro visualizza unbreve messaggio di Guida. Il messaggio cambia in base alla posizione in cui si trova il cursore nella parte superiore della finestra.
(Si può sempre premere F1 per aprire un argomento della Guida in linea sensibile al contesto.)
Nella colonna Azione, si può specificare una qualsiasi delle49 azioni macro disponibili in Access.
Se si fa clic su una casella qualsiasi della colonna Azione, compare un pulsante freccia giù nel lato destro della casella.
Fare clic su questo pulsante per aprire un elenco a discesa delle azioni macro, mostrato nella figura 2 .
Per vedere come funziona la finestra Macro, selezionare l’azione FinestraMessaggio.
(Scorrere lungo l’elenco fino a trovare FinestraMessaggio.)
L’azione FinestraMessaggio serve per aprire una finestra di dialogo popup modale contenente un messaggio. ('modale ' significa che si tratta di una finestra che deve essere chiusa prima di continuare...)
Questo è un metodo eccellente per presentare nel database un messaggio di avvertimento o informativo, senza definire una maschera separata.
Supponiamo che il messaggio sia un saluto e scriviamo Messaggio di saluto nella casella corrispondente della colonna Commento.
La colonna Commento si rivelerà particolarmente utile per documentare macro voluminose che contengonomolte azioni.
Si possono introdurre commenti addizionali in qualunque casella vuota della colonna Commento (vale a dire, qualunque casella che non abbia un’azione a fianco ad essa).
Dopo che abbiamo selezionato un’azione come FinestraMessaggio, Access mostra un’area nella parte inferiore della finestra Macro nella quale è possibile introdurre gli argomenti per l’azione ( figura 3 ).
Come per la finestre Tabella e Query in visualizzazione Struttura, si può usare il tasto funzione F6 per spostarsi fra la parte superiore e la parte inferiore della finestra Macro.
Si usa l’argomento nellacasella Messaggio per impostare il messaggio da visualizzare nella finestra di dialogo che si sta creando.
L’impostazione nella casella SegnaleAcustico indica ad Access seprodurre bip quando viene visualizzato il messaggio.
Nella casella Tipo è possibile impostare unindicatore grafico, per esempio un segno di stop rosso oppure un segno esclamativo azzurro, che apparirà assieme al messaggio.
Nellacasella Titolo si scrive il contenuto della barra del titolo della finestra di dialogo.
Usiamo in questa macro le impostazioni mostrate nella figura sopra (il messaggio dovrebbe essere “Benvenuti nel database Gestione Colture")
Salvare la macro
Si deve salvare una macro prima di poterla eseguire.
Scegliere il comando Salva (o Salva con nome/esporta) dal menu File. Se si sceglie Salva, Access apre lafinestra di dialogo mostrata nella figura qui sotto.
Introdurre il nome ProvaBenvenuto e fare clic su OK per memorizzare la macro nel database corrente ( figura 4 ).
Verifica delle macro
Alcune macro (come quella semplice appena creata) possono essere eseguite direttamente dalla finestra Database o dalla finestra Macro, perché non dipendono da controlli su una maschera aperta o su un report.
Se, invece, lamacro dipende da una maschera o da un report, allora si deve collegare la macro all’evento appropriato ed eseguirla in quel modo.
Quale che sia il metodo di esecuzione di una macro, Access offre comunque un modo semplice per provarla, consentendo di seguire passo a passo lo svolgimento delle sue azioni.
Per attivare la verifica passo a passo, entrare nella finestra Database, fare clic sulla scheda Macro, selezionare la macro che si desidera verfficare e fare clic sul pulsante Struttura.
In questo modo si aprirà la macro nella finestra Macro.
Fare clic sul pulsante Passo a passo nella barra degli strumenti Macro o scegliere il comando Passo a passo dal menu Esegui.
Ora, quando si esegue la macro, Access apre la finestra di dialogo Macro passo a passo prima di eseguire ogni passo. Nella finestra di dialogo vengono visualizzati il nome della macro, l’azione e gli argomenti dell’azione.
Per collaudare la macro ProvaBenvenuto appena creata, aprire la finestra Macro, fare clic sul pulsante Passo a passo e quindi sul pulsante Esegui: appare la finestra di dialogo Macro passo a passo, mostrata nella figura 5 .
Se si fa clic sulpulsante Passo, viene eseguita l’azione visualizzata nella finestra di dialogo e si vedrà la finestra di dialogo modale contenente il messaggio appena creato, come nella figura 6 .
Fare clic sul pulsante OK nella finestra di dialogo modale per chiuderla.
Se la macro contiene più azioni, si ritorna allafinestra di dialogo Macro passo a passo, che mostra l’azione successiva. In questo caso, la macro ha solo un’azione e quindi Access ritorna alla finestra Macro.
Se si verifica un errore in una macro durante la normale esecuzione dell’applicazione, Access visualizza dapprima una finestra di dialogo che spiega l’errore verfficatosi; poi presenta il dialogo Azione non riuscita, che è simile a quella di Macro passo a passo, con le informazioni sull’azione che ha causato il problema.
A questo punto, bisogna fare clic sul pulsante Arresto nella finestra di dialogo Azione non riuscita e modificare la macro per risolvere il problema.
Prima di continuare nella lettura di questo tutorial, conviene tornare alla finestra Macro e fare clic sul pulsante Passo a passo per deselezionarlo (altrimenti si continuerebbe a eseguire ogni macro del database nella modalità passo a passo).
Definire più azioni
In Access è possibile definire più azioni in una macro e specificare la sequenza in base alla quale le azioni verranno eseguite.
Vi sono ottimi esempi di macro che contengono più azioni nel database Gestione Colture.
Aprire il database e chiudere la maschera OreLavorateOperai per l’immissione dei dati in modo da ritornare alla finestra Database.
Fare clic sulla scheda Macro e selezionare la macro chiamataAutoexec.
Un clic sul pulsante Struttura per aprirla in una finestra Macro. La macro è mostrata nella figura 7 .
Se si crea una macro e la si chiama Autoexec, Access la esegue ogni volta che si apre il database nel quale la macro è memorizzata.
Si può evitare che Access esegua la macro se si tiene premuto il tasto Maiusc mentre si apre il database.
In questa macro sono state definiteOtto azioni, che Access esegue automaticamente ogni volta che si apre il database.
In primo luogo, l’azione Clessidra visualizza unpuntatore del mouse a forma di clessidra per dare all’utente un segnale visivo che i prossimi passaggi possono durare un po’ di tempo.
È sempre consigliabile attivare questo avvertimento visivo, anche se si pensa che le azioni che seguiranno non dureranno troppo a lungo. Poi viene eseguito il comandoEcoSchermo (il relativo argomento EcoSchermo è impostato suNo) per impedire che lo schermo venga ridisegnato dopo ciascuna azione.
Se si pensa di dover eseguire in una riga parecchie azioni che potrebbero causare modifiche alla visualizzazione, si può disattivare la funzione che ridisegna lo schermo, in modo da ridurre il fastidio dello sfarfallamento.
In VBA esiste uncomando simile (il metodo Echo dell’oggetto Application) per arrestare lo sfarfallamento dello schermo.
L’azione successiva, EseguiMacro, esegue un’altra macro (Offbars) che nasconde la barra degli strumenti standard Visualizzazione Maschera. Questa macro risulta comoda se si usano nelle macro brevi serie di azioni ripetute più volte.
Si crea una macro con i comandi ripetuti e poi si chiama quella macro ovunque si debbano eseguire quelle azioni comuni. Se si apre la macroOffBars chiamata da questa azione EseguiMacro, si vede che contiene un’azione MostraBarraStrumenti per nascondere la barra degli strumenti Visualizzazione Maschera.
Segue l’azione ApriMaschera, che apre la mascheraOreLavorateOperai.
Come si può vedere nella figura sopra, l’azione della macro impostaquattro argomenti per definire il funzionamento.
L’argomento Nome maschera indica la maschera che si desidera aprire.
L’argomento Visualizza dice ad Access quale visualizzazione si desidera. (Le quattro scelte per l’argomento Visualizza sono Maschera, Struttura, Anteprima di stampa e Foglio dati.)
Modifica è il default (impostazione predefinita) per l’argomento Modalità Immissione dati, che permette all’utente di aggiungere, modfficare o cancellare record durante l’uso di questa maschera. (Le scelte per questo argomento sono Aggiungi, Modifica e Sola lettura.)
L’impostazione predefinita per l’argomento Modalità Finestra è Normale, che apre la maschera nella modalità impostata dalle sue proprietà di struttura.
È possibile ignorare le impostazioni delle proprietà di struttura per aprire la maschera in modalità Nascosta, sotto forma di Icona o nellaspeciale modalità Dialogo.
Quando si apre unamaschera in modalità Dialogo, Access non esegue altre azioni né enunciati VBA finché la maschera non viene chiusa.
Non sempre Access aspetta che un’azione sia finita prima di procedere con la successiva. Per esempio, un’azione ApriMaschera non fa altro che avviare un’attività per cominciare ad aprire la maschera.
Soprattutto se la maschera visualizza parecchi dati, Access può impiegare diversi secondi per caricare tutti i dati e portare a termine la visualizzazione della maschera (ciò dipende dalla velocità del Processore e da quante applicazioni sono eseguite in contemporanea)
Access ne approfitta per passare all’attività successiva, senza aspettare che la maschera sia completamente aperta.
Si puòforzare l’apertura di una maschera chiedendo ad Access di mettervi la focalizzazione.
A questo scopo, la macro Autoexec si serve dell’azione SelezionaOggetto per identificare l’oggetto che deve ricevere il focus (in questo caso, la maschera OreLavorateOperai), poi ricorreall’azione VaiAControllo per mettere la focalizzazione su unparticolare controllo della maschera.
Dopo che l’azione VaiAControllo ha messo il focus sul controllo, l’azione MostraTuttiIRecords si assicura che vengano disattivati eventuali filtri attivi sulla maschera in modo da visualizzare tutti i records.
L’ultima azione della macro Autoexec (ancora l’azione Clessidra) riporta il puntatore del mouse alla sua forma normale per far sapere all’utente che l’esecuzione della macro è terminata.
È molto utile imparare a definire più azioni all’interno di una macro, se si desidera automatizzare le attività da eseguire quotidianamente.
Ora che si è appreso come si fa, il prossimo passo consiste nell’imparare come si raggruppano le azioni in base alle loro attività.
Esempi di Macro con Microsoft Access
Tutorials su Microsoft Access
Dr.Maurizio Cucchiara
autore del corso:
"Corso Base di Microsoft Access"
disponibile on line su questo sito
MC2 E-Learning S.a r.l.
Formazione per il Web
http://www.mc2.it/html/access.html
Cerca sul web con Google:
