Oltre
a tabelle, query, maschere e report di stampa,
la cui funzione è quella di organizzare, memorizzare
e visualizzare dati, troviamo due importanti strumenti
in grado di automatizzare operazioni e rendere
più versatile un database.
Il
primo strumento che vedremo è la Macro, questa
consente di aggiungere azioni in maniere intuitiva
ad eventi scatenanti particolari.
Supponiamo d'avere una maschera "Form_1"
contenente il campo "Cognome", dopo
l'aggiornamento di questo campo voglio aprire
un'altra maschera "Form_2". Dalla visualizzazione
Struttura della "Form_1" clicco
col tasto destro del mouse sul campo "Cognome"
abilitando così la scheda delle proprietà. Tra
le proprietà troverò "Dopo Aggiornamento"
(After UpDate). Quì cliccando sulla tendina posso
optare per la macro da eseguire allo scatenarsi
dell'evento selezionato.
La macro può essere creato prima o durante usando
il generatore.
Il contenuto della macro descritta sarà formalizzata
con un semplice:
L'uso
delle macro permette di automatizzare alcuni processi
in maniera rapida e intuitiva, certo la flessibilità
di questo strumento è alquanto limitata. Per ottenere
risultati più completi ed efficienti ci viene
in aiuto il VBA, una sottospecie di Visual Basic
specializzato per le Applicazioni, chiamato appunto
Visual Basic for Application.
Il
codice VBA può anch'esso essere associato ad eventi
particolati, per esempio se nella "Form_1"
ho il pulsante "P_1", posso scrivere
una procedura chiamata "P_1_OnClick"
che entrerà in esecuzione premendo "P_1".
La sintassi VBA è pressochè identica alla sintassi
usata in VBA, si può lavorare con Recordset e
istruzioni SQL direttamente dal codice, e questo
ne semplifica notevolmente la stesura del codice.
Il codice VBA può essere inserito sia in un contesto
globale (moduli globali) che in un contesto locale
(locale ad ogni Form). Il codice locale alla Form
può però essere eseguito esclusivamente all'interno
della form in questione, e con esso tutte le variabili
in esso usate sono "visibili" unicamente
localmente alla form. A livello globale possiamo
"vedere" varibili a livello "globale"(variabili
pubbliche) e a livello "locale" alla
procedura (variabili private). Il codice è comunque
utilizzabile da qualunque posizione.
La
soluzione ottimale per la programmazione, consiste
nel "chiamare" procedure globali dai
moduli locali, magari passando parametri che caratterizzano
la procedura globale.
I
codici VBA non posso essere "compilati",
per gli utenti più esigenti esiste inoltre la
possibilità di usare codice scritto e compilato
in VB. In questo modo parte del programma rimane
compilato (istruzioni e codice in genere) e parte
rimane "visibile" (tipicamente i dati
e i filtri in un file mdb o mde).