Descrizione
Le macro Autoexec e Autokeys.
Obiettivi della lezione
Saper impostare delle macro che vengono eseguite senza
essere richiamate: Autoexec e Autokeys. Saper impostare i relativi tasti di
scelta rapida.
Indice lezione
Lezione 20 - Database
20.1
Le macro Autoexec
e Autokeys;
20.2
La combinazione di
tasti;
20.3
Esercizio.
Dati sulla lezione
|
Versione: |
v1.0 |
|
Tempi: |
1 ora / 60 minuti |
|
Data svolgimento lezione: |
14 Aprile 2003 |
|
Autore dei contenuti: |
Vastapane Marco Attilio – Giuliano Luca |
|
Autore materiali didattici: |
Togni Francesca |
La Teoria
20.1 - Le macro Autoexec e Autokeys
Esistono alcuni nomi di macro che permettono di definire azioni che verranno eseguite anche senza essere richiamate direttamente. Le più importanti ed utilizzate sono Autoexec ed AutoKeys.
La prima permette di definire tutte le azioni che dovranno essere compiute quando il programma verrà aperto, come ad esempio far visualizzare immediatamente una maschera con il menu principale, oppure presentare una maschera per l’inserimento di una password di accesso. Tale macro viene ricercata automaticamente da Access all’esecuzione del programma: se presente essa verrà eseguita.
E’ bene quindi non usare questi nomi per impostare altre macro richiamabili da maschere, perché esse agirebbero in ogni istante, indipendentemente dalle chiamate.
Per creare una macro Autoexec operare come segue:

La seconda invece permette di definire le azioni che vengono compiute premendo una determinata sequenza di tasti. Ad esempio: è possibile impostare l’apertura di una agenda premendo il tasto F2, oppure associare al tasto F3 l’esecuzione di una query.
Per creare una macro AutoKeys operare come segue:
1. selezionare la scheda Macro nella finestra Database, e fare clic su Nuovo;
2.
premere il tasto Nome Macro
;
3. digitare il codice del tasto nella nuova colonna apparsa;
4. aggiungere le azioni da eseguire nella colonna Azione;
5. salvare la macro con il nome Autokeys.

20.2 - La combinazione di tasti
La tabella seguente riporta i codici dei tasti speciali che possono essere utilizzati:
|
Tasto |
Codice |
|
BACKSPACE |
|
|
INTERR |
|
|
BLOC MAIUSC |
|
|
CANC |
|
|
FRECCIA GIÙ |
|
|
FINE |
|
|
INVIO |
|
|
ESC |
|
|
AIUTO |
|
|
HOME |
|
|
INS |
|
|
FRECCIA SINISTRA |
|
|
BLOC NUM |
|
|
PGGIÙ |
|
|
PGSU |
|
|
STAMP |
|
|
FRECCIA DESTRA |
|
|
BLOC
SCORR |
|
|
TAB |
|
|
FRECCIA SU |
|
|
F1 |
|
|
F2 |
|
|
F3 |
|
|
F4 |
|
|
F5 |
|
|
F6 |
|
|
F7 |
|
|
F8 |
|
|
F9 |
|
|
F10 |
|
|
F11 |
|
|
F12 |
|
|
F13 |
|
|
F14 |
|
|
F15 |
|
|
F16 |
|
Una
combinazione di tasti che includono MAIUSC, CTRL e ALT,
vanno specificati anteponendo al codice del tasto uno o più dei seguenti
simboli:
|
Tasto |
Codice |
|
MAIUSC |
|
|
CTRL |
|
|
ALT |
|
Quando
vengono usati tali tasti in concomitanza con altri, racchiudere il codice tra
parentesi. Per indicare, ad esempio, che occorre tenere premuto CTRL mentre
si premono A ed S, scrivere ^(AS).
Per indicare che occorre tenere premuto ALT mentre si preme A quindi
rilasciare ALT e premere S, specificare %AS.
Per
indicare la ripetizione di un tasto, utilizzare la forma {tasto numero}. Inserire uno spazio tra tasto e numero. Ad esempio, {CANC 3} significa premere il tasto CANC per 3
volte.
E’ così possibile crearsi dei “tasti veloci” per compiere delle azioni.
Utilizzando anche le Condizioni è possibile personalizzare ulteriormente le funzioni dei tasti. Si pensi ad esempio di voler far in modo che il tasto {F12} consenta di aprire il report associato alla maschera in cui ci si trova. Il risultato potrebbe essere il seguente:

Nel campo Condizione è stata usata la proprietà
(propria del motore di Access, Microsoft Jet Engine) per
testare quale fosse la maschera attiva (aperta) al momento.
Esistono numerose altre proprietà di Microsoft Jet Engine,
che permettono di lavorare con ogni tipo di oggetto di Access (Tabelle,
Maschere, Report, Query, Moduli, Macro). Esse sono comunemente usate a livello
di codice Visual Basic for Applications affiancate ad una conoscenza di
programmazione vera e propria. Si prendano quindi per buono quelle riportate:
esse saranno comunque sempre spiegate.
Facendo riferimento alla figura sopra riportata si può
notare che alla pressione del tasto {F12} è stata impostata l’apertura del
report “Pazienti” se la maschera aperta è “Pazienti”, mentre verrà aperto il
report “Prenotazioni” se la maschera attiva sarà “Prenotazioni”.
Si è aggiunto inoltre il tasto {F11} per poter stampare
dalla maschera “Prenotazioni” solo i dati inerenti la data corrente. Come ben
evidenziato in figura, la proprietà Condizione
WHERE associata al
tasto {F11} è impostata con la condizione [DATA]=Date(). La funzione Date(),
come visto nella lezione sulle query parametriche, restituisce sempre la data
impostata sul pc.
La macro appena spiegata non può essere provata seduta
stante in quanto priva di ogni riferimento a Database già impostati.
La Pratica
Creare le seguenti tabelle
ANAGRAFE
Matricola 5 caratteri chiave
Cognome 20 caratteri
Nome 15 caratteri
DataNascita data
DIPLOMATO
Matricola 5 caratteri
Sezione 1 carattere
IndirizzoStudio 20 caratteri
Voto numerico
Anno 4 caratteri
Creare una maschera di avvio in cui si possa inserire in un campo il valore di un generico anno. Successivamente impostare una maschera ove siano visualizzati Matricola, Cognome, Nome, Sezione, IndirizzoStudio, Anno, Voto filtrati in base al campo suddetto. Realizzare una macro che alla pressione del tasto F8 consenta di visualizzare i dati così ottenuti.
Inserire i seguenti dati nella tabella DIPLOMATO:

Nella tabella ANAGRAFE riportare i seguenti valori

La maschera di avvio sarà composta semplicemente da un campo NON associato di nome “annofiltro”, in cui sarà possibile inserire il valore desiderato. Aggiungere inoltre un’etichetta come da figura.

Salvare la maschera con il nome “Avvio”.
Per poter creare la seconda maschera si imposti prima una query.
In essa dovranno essere presenti entrambe le tabelle di questo esercizio, poste in relazione, con un JOIN esterno, tramite il campo “Matricola” (Il procedimento per impostare tale legame è identico a quello spiegato nell’esercizio della lezione 18).
Sulla griglia QBE riportare i campi “Matricola”, “Cognome”, ”Nome”, “Sezione”, “IndirizzoStudio”, “Voto”, “Anno”; porre nella cella Criteri sotto il campo “Anno” la condizione [Forms]![Avvio]![annofiltro]. Ciò vuol dire che il valore impostato nella casellina “annofiltro” nella maschera “Diplomi” farà da filtro alla query.

Salvare la query con nome “Diplomi”
Creare una maschera usando l’autocomposizione che sia legata alla query “Diplomi”, applicare un layout di tipo “Tabulare” e salvarla come “DiplomiAnno”.
Una possibile impostazione potrebbe essere la seguente:

A questo punto bisognerà creare le due macro, cioè quella che permetterà di aprire in automatico la maschera “Avvio” (Autoexec) e quella per la gestione dei tasti (Autokeys)
La macro AUTOEXEC dovrà contenere nel campo Azione il comando ApriMaschera; nella proprietà Nome maschera bisognerà scegliere dal menù a tendina la maschera “Avvio”.

Salvarla con nome
"Autoexec".
La macro AUTOKEYS dovrà visualizzare al suo interno anche le colonne Nome
macro e Condizione, premendo prima il tasto
e poi il tasto
. Nella prima colonna inserire il codice del tasto F8, cioè
{F8} e nella seconda impostare la condizione
[screen].[activeform].[Name]=”Avvio”.
L’azione associata sarà l’apertura della maschera “DiplomiAnno”.

Salvarla con nome “Autokeys”.
Chiudere Access. Riaprire il database facendo doppio click sull’icona del file. In automatico verrà aperta la maschera “Avvio”.
Inserire successivamente nel campo con etichetta “Anno” il valore 2000, premere INVIO per confermare il dato e premere il tasto F8 per far apparire la maschera DiplomiAnno riportante i seguenti valori:

Non è obbligatorio inviare l’esercizio al tutor.
Feedback
Per
chiarimenti, si prega di lasciare la domanda direttamente sul Forum della
piattaforma Maestra.