logo MC2 E-Learning S.a r.l.
Logo Einstein grigio sfumato
e = m x c al quadrato





Aprire una maschera secondaria con una macro di Access

Impariamo come aprire una maschera secondaria programmando l'evento su clic di un pulsante di comando attraverso l'utilizzo di una macro di Access.







Come si è visto nei tutorials della parte "Esempi maschere Access", utilizzando una maschera è più facile elaborare i dati.

Si è visto inoltre che si possono creare maschere con più tabelle inserendo sottomaschere nella maschera principale, in modo da consentire la visualizzazione di dati correlati nella stessa maschera.

Ci sono però dei casi in cui l’uso delle sottomaschere
non è conveniente, e cioè:

• Quando occorrono tre o più sottomaschere per vedere dati correlati

• Quando la maschera principale è troppo piccola per visualizzare tutta la sottomaschera

• Quando è necessario vedere i dati correlati solo ogni tanto

La soluzione consiste nel visualizzare i dati correlati utilizzando una maschera diversa, che si può aprire rispondendo a uno fra svariati eventi.

Si può, per esempio, utilizzare un pulsante di comando oppure l’evento SuDoppioClic di uncontrollo sulla maschera principale per consentire agli utenti l’accesso ai dati correlati.

Con questa tecnica si riduce l’affollamento dello schermo, si facilita l’utilizzo della maschera principale e la si rende più veloce nel passaggio da record a record.

Si può utilizzare questa tecnica nella maschera OreLavorateOperai.

Attualmente, facendo clic sul pulsante Vedi Operaio nella maschera si apre la maschera OPERAI, che visualizza tutti i record della tabella Operai, compresa la data di assunzione, il costo orario e la tipologia del contratto di lavoro.

Se però si sta osservando un record diOreLavorateOperai nel quale l'operaio corrente è GIORGIO, sarebbe ancora più comodo se lamaschera OPERAI visualizzasse soltanto i dati relativi a GIORGIO, invece di quelli di tutti gli altri operai.

Creeremo ora una macro che apre la maschera OPERAI in base allaCodice dell'operaio visualizzato nel record attualmente visibile nella maschera OreLavorateOperai.


Creare la macro ApriFormOperai


Aprire il database GestioneColture.mdb. Chiudere la maschera OreLavorateOperai per tornare alla finestra Database.

In questa finestra, fare clic sulla scheda Macro, e poi sul pulsante Nuovo. Quando si apre la finestra Macro, ingrandirla fino a riempire tutto lo schermo.

Poi fare clic sui pulsanti Nomi macro e Condizioni sulla barra degli strumenti per visualizzare le colonne Nome macro e Condizione nella finestra Struttura.

Anche se per questa macro non ci sarà bisogno di utiizzarle, è bene prendere l’abitudine di visualizzare queste colonne ogni volta che si creano macro nuove, nel caso possano servire.

Si possono visualizzare per default le colonne Nome macro e Condizione selezionando Opzioni dal menù Strumenti.

Nella finestra di dialogo opzioni, si fa clic sulla scheda Visualizzazione e si selezionano entrambe le opzioni nella sezione Mostra in struttura macro.

La volta successiva che si crea una macro, le colonne verranno visualizzate automaticamente.

Qui sotto si può vedere la macro che ci accingiamo a creare.




La macrocontiene una sola azione, ApriMaschera.  L’azione ApriMaschera non apre soltanto la maschera OPERAI, ma applica anche un filtro per ottenere che l'operaio che apparirà sullo schermo corrisponda all'operaio visualizzato attualmente nella maschera OreLavorateOperai.

Fare clic nella colonna Azione e quindi scegliere ApriMaschera dall’elenco a discesa delle azioni. Nella sezione Argomenti azione immettere il seguenteargomento Condizione Where:

[COD_OP]=Forms![OreLavorateOperai]![COD_OP]


L’argomento Condizione Where fa sì che l’azione ApriMaschera apra la maschera richiesta visualizzando soltanto le righe dei record di origine della maschera in cui il campo COD_OP (Codice dell'Operaio)  è uguale al valore che appare attualmente nella casella di riepilogo combinata COD_OP sulla maschera OreLavorateOperai aperta.

(Un po’ più avanti vedremo come si crea una macro per sincronizzare queste due maschere mentre ci si sposta sulle diverse righe della maschera OreLavorateOperai.)

Impostare i restanti argomenti per l’azione ApriMaschera come indicato nella figura.

Dopo aver terminato di creare l’azione per la maschera è opportuno servirsi della colonna Commento per documentare le macro.

In questo modo diventa più semplice correggerle, modificarle e, in futuro, potenziarle.

Inoltre è più facile leggere, spiegato in italiano, l’operato di ciascuna azione della macro invece di dover esaminare gli argomenti per ogni azione riga per riga.

Consultare la figura sopra e inserire le informazioni visualizzate nella colonna Commento.

Come si può vedere, abbiamo già aggiunto commenti sulla macro in generale e sulla specifica azione che la macro deve eseguire.

Scegliere Salva dal menu File e salvare la macro col nome ApriFormOperai.

Successivamente, si può associare la macro al controllo casella combinata COD_OP nella maschera OreLavorateOperai.

Fare clic sulla scheda Maschere nella finestra Database.

Selezionare OreLavorateOperai e aprirla in visualizzazione Struttura.

Fare clic sul controllo casella combinata COD_OP e poi clic sul pulsante Proprietà nella barra degli strumenti.

Quando si apre la finestra delle proprietà, fare clic sullascheda Evento.

La macro ApriFormOperai verrà attivata dall’evento Su doppio clic, quindi fare clic sulla casella della proprietà Su doppio clic e selezionare la macro dall’elenco a discesa della proprietà.

Dopo aver selezionato la macro, la finestra delle proprietà dovrebbe presentarsi come quella illustrata nella figura qui sotto.



Si può anche associare la macro col pulsante Vedi Operaio cambiando il suo evento SuClic in modo che punti a questa nuova macro.

Salvare e chiudere la maschera OreLavorateOperai.

Tornare alla finestra Database, aprire la maschera in visualizzazione Maschera e poi ingrandirla. Scorrere verso il basso per due o tre righe e poi fare doppio clic sulla casella combinata Operaio.

I dati che compaiono nella maschera OPERAI dovrrebbero riferirsi all'operaio nel record attuale della maschera OreLavorateOperai (GIANCARLO)

Lo schermo dovrebbe presentarsi come quello raffigurato nella figura seguente:




Collegare in questo modo due maschere correlate è molto utile, ma che succede ai dati visualizzati nellamaschera OPERAI quando ci si sposta su un nuovo record nella maschera OreLavorateOperai ?

Se proviamo a farlo, vedremo che i dati nella maschera OPERAI non cambiano mentreci spostiamo tra i record della maschera OreLavorateOperai.

I dati non cambiano perché le maschere non sono sincronizzate.

Nel prossimo tutorial impareremo una tecnica per sincronizzare i dati nelle due maschere.


Creazione di una macro semplice

Gruppi di macro

Espressioni condizionali

Fare riferimento a oggetti maschere e report

Aprire una maschera secondaria

Sincronizzare due maschere correlate

Convalidare dati immessi dall'utente

Preimpostare i valori nei controlli


Collegamenti ad altri tutorial su Microsoft Access:

Le Relazioni tra le tabelle di Access

Costruire una tabella con Access



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:


Google