sei sul sito di Giovanni Fraterno
In questo modulo imparerete
a:
6.1) creare una semplice query
6.2) salvare una query
6.3) affinare i criteri di ricerca
6.4) applicare dei filtri a una query e poi
rimuoverli
6.1) Creare una
semplice query
A mano a mano che aumentano
le informazioni archiviate in una base dati, aumenta anche la necessità di
possedere dei validi criteri di ricerca.
Diventa allora
indispensabile poter recuperare rapidamente singoli dati o gruppi di dati,
qualunque sia la tabella, il campo o il record in cui questi sono conservati.
Lo strumento classico che i
programmi del tipo di Access forniscono a tale scopo è la "query", o
"interrogazione", se vogliamo usare il corrispondente termine in italiano.
Nel prosieguo del modulo
adopereremo indifferentemente entrambe le forme.
Ma vediamo ora come fare a
generare una semplice query, per estrarre dati dalla ormai ben nota tabella
"Videoteca".
In primo luogo attiviamo il
selettore "query", cioè il secondo pulsante dall'alto del menu di
sinistra della finestra database.
Come vedete, compaiono sulla
destra solo i metodi per la creazione di query, non essendovi al momento
interrogazioni già salvate.
Facciamo un doppio clic su
"Crea query in visualizzazione struttura".
Si aprono due finestre:
quella in primo piano, la più piccola delle due, ci invita a selezionare le
tabelle da interrogare.
Scegliamo la tabella
"videoteca" e clicchiamo su "Aggiungi".
Come risultato di questa
operazione, una finestra chiamata "Videoteca", contenente l'elenco
dei campi presenti nella tabella omonima, è comparsa nella parte superiore
sinistra della finestra grande sullo sfondo, che è lo strumento che
utilizzeremo per generare la nostra query.
Chiudiamo la finestra che ci
ha consentito di selezionare la tabella "Videoteca" e passiamo a
lavorare all'interno della finestra "query".
La prima operazione da
compiere è selezionare i campi della tabella dai quali vogliamo estrarre dati,
cioè i campi da interrogare.
Per fare ciò, basta fare un
doppio clic sul nome di ciascuno dei campi che voglio aggiungere alla query.
Scelgo dunque ad uno ad uno
tutti i campi, ad eccezione di "FilmID" e "Data di registrazione".
Come potete vedere, il nome
di ognuno dei campi prescelti è comparso nella prima riga della parte inferiore
della finestra "query".
Sotto il nome dei campi è
riportato invece il nome della tabella "Videoteca", alla quale tutti
quanti appartengono.
E' questa l'occasione per
fornire un rapido cenno sulle regole di interrogazione.
Una query, innanzitutto, non
è vincolata ad agire sul contenuto di un'unica tabella, come nel nostro
esempio, ma può, sotto particolari condizioni, interrogare due tabelle
contemporaneamente.
L'operazione di collegare i
campi di due tabelle per effettuare una ricerca mirata prende il nome tecnico
di JOIN.
L'operazione invece più comune,
cioè scegliere, come abbiamo fatto noi, uno o più campi da una stessa tabella,
prende il nome di SELECT.
Entrambe le operazioni fanno
parte di un linguaggio conosciuto come SQL, ben noto a chi lavora con le basi
di dati.
La sigla SQL sta per
"Structured Query Language", cioè, in italiano, "Linguaggio di interrogazione
strutturato".
Tutte le query realizzate
per mezzo di Access utilizzano questo linguaggio, ma lo fanno per così dire
"in segreto".
Per nostra fortuna, infatti,
l'utente comune può costruire query anche complesse usando semplicemente il
mouse, senza essere costretto a scrivere o a vedere una sola riga di codice.
Ma continuiamo adesso la
costruzione della nostra prima query.
6.2) Salvare
una query
Ora che abbiamo scelto i
campi, possiamo procedere ad una prima visualizzazione dei risultati della
nostra interrogazione.
Il programma però non ci
consente di passare alla visualizzazione dati, se prima non salviamo la query.
Per salvarla, clicchiamo
sull'icona del dischetto, posta sulla barra degli strumenti.
Si apre la finestra di
salvataggio, che ci chiede di attribuire un nome alla query.
Scriviamo nell'apposita
casella "qvideoteca", in modo che il nome ci aiuti a ricordare che si
tratta di un'interrogazione applicata alla tabella "Videoteca".
Clicchiamo infine sul
pulsante "Apri" ed ecco visualizzato il risultato della nostra query!
Come potete vedere, il
risultato che otteniamo è una tabella in tutto analoga all'originale
"Videoteca", tranne che per i due campi esclusi, ovvero:
"FilmID" e "Data di registrazione".
E' chiaro che, se la query
deve servire a qualcosa, bisogna restringere il campo dell'interrogazione.
Nel caso, infatti, stessimo
estraendo dati da una tabella con migliaia di record, ottenere una risposta
contenente altre migliaia di record non è evidentemente di nessun aiuto.
Vediamo dunque come fare a
restringere il campo dei risultati visualizzati.
6.3) Affinare i
criteri di ricerca
Possiamo restringere fino al
contenuto di un singolo record il risultato di un'interrogazione, inserendo
opportuni valori nella riga "criteri".
Dalla tabella
"videoteca" posso ad esempio visualizzare solo i record relativi ai
film del regista Ron Howard.
Per farlo, posiziono il
cursore all'interno della riga "criteri" in corrispondenza del campo
"regista", e digito "Ron-spazio-Howard".
Passo quindi in
visualizzazione dati ed ecco come unico risultato della query il record del
film "A beautiful mind", diretto appunto dal regista Ron Howard.
Un modo per semplificare la
scrittura dei valori nella riga "criteri" è usare il carattere jolly
asterisco.
Avremmo potuto ad esempio
scrivere "*Howard" ed ottenere il medesimo risultato della query
precedente.
L'asterisco messo prima di
una stringa di caratteri significa cioè, tradotto in linguaggio umano:
"cercami qualsiasi record che finisce con la parola
"Howard"".
Messo alla fine della
stringa significa invece: "cercami qualsiasi record che comincia con la
parola "Howard".
E' chiaro che un simile
sistema dà risultati utili soltanto se la stringa immessa insieme con
l'asterisco è sufficientemente lunga e significativa da restringere
opportunamente la ricerca.
Ma torniamo ora alla nostra
query con Access, per accennare ad un tipico sistema utilizzato per
circoscrivere i risultati di una ricerca.
Si tratta dell'utilizzo di
operatori logici come AND, OR e NOT, che significano rispettivamente, in
italiano, "E", "OPPURE",
"NON".
Vediamo in particolare un
esempio pratico dell'uso dell'operatore logico AND.
Se eseguiamo una query
immettendo nel campo "durata" il criterio ">100"
otteniamo cinque risultati: l'elenco cioè dei cinque record relativi a film che
durano più di 100 minuti.
Possiamo rifinire questa
ricerca specificando che la query deve soddisfare anche un valore di durata
massimo: non vogliamo cioè avere tra i risultati, film che durino oltre 120
minuti.
Dunque, sempre nella stessa
cella, alla destra della stringa ">100" scriviamo "AND
<120".
Passiamo in visualizzazione
dati, ed ecco che la nostra query dà stavolta solo due risultati: i film
"E.T." e "Dont' say a word", lunghi rispettivamente 115 e
113 minuti.
In certi casi,
indipendentemente dai criteri di ricerca impostati, può risultare utile visualizzare
un numero di campi ridotto.
La procedura per ottenere un
simile risultato è davvero semplice.
Vediamola.
Il sistema per visualizzare
un minor numero di campi nella tabella di query, consiste nel togliere il segno
di spunta dall'apposita casella del campo che voglio escludere: proviamo a
farlo con il campo protagonisti.
Apro ora la query in
visualizzazione dati ed ecco che, tra "regista" e "durata"
non appare più il campo protagonisti.
E' importante notare, però,
che il disattivare la visualizzazione di un campo non significa eliminare
l'azione di quel campo sulla query.
In altri termini, anche se
abbiamo disattivato la visualizzazione della colonna "protagonisti",
possiamo continuare ugualmente ad effettuare ricerche che usano come criteri i
nomi dei protagonisti.
Vediamo come fare.
Senza il segno di spunta
sotto "protagonisti", nella sottostante cella "criteri"
inserisco il valore "John Travolta" e clicco su "visualizzazione
dati".
Otteniamo come risultato
della query il record del film "Unico testimone", il cui protagonista
è appunto l'attore John Travolta.
Il suo nome però non appare
tra i risultati, dal momento che abbiamo disabilitato la visualizzazione dei
dati contenuti nel campo "protagonisti".
Vediamo allora in che modo
possiamo effettivamente eliminare da una query un campo precedentemente
inserito.
Il sistema per eliminarlo è
rapidissmo: clicchiamo sul nome del campo da eliminare, ad esempio su
"protagonisti", e poi, una volta selezionato il campo, premiamo il
pulsante "Canc" sulla tastiera.
Naturalmente è altrettanto
semplice reinserire un campo precedentemente eliminato: basta un doppio clic
sul suo nome, all'interno della finestra di tabella a cui il campo appartiene,
finestra che si trova, come abbiamo visto, nella parte superiore sinistra del
modulo per le "query".
6.4) Applicare
dei filtri a una query e poi rimuoverli
Vediamo adesso un altro
modo, molto semplice e veloce, per effettuare delle interrogazioni.
Agiremo stavolta
direttamente sulla tabella "Videoteca", senza utilizzare la finestra
"query".
Il sistema a cui ci si riferisce
è quello dei filtri.
Proveremo ad applicare ed a
rimuovere un filtro in base alla selezione.
Apriamo con un doppio clic
la tabella "Videoteca" e selezioniamo con un altro doppio clic la
parola "drammatico", in una delle sue occorrenze all'interno del
campo "genere".
Facciamo quindi un clic
sull'icona con l'imbuto e il fulmine, sulla barra degli strumenti.
Istantaneamente scompaiono
dalla tabella tutti gli altri record, ad eccezione dei soli due relativi a film
drammatici.
Abbiamo cioè applicato un
filtro alla tabella in base alla selezione.
Vediamo ora come rimuoverlo.
Per ripristinare la
visualizzazione completa dei record, clicchiamo semplicemente sull'icona
"rimuovi filtro", simboleggiata dal disegno di un imbuto.
Ed ecco apparire nuovamente i record che erano stati nascosti dall'applicazione del filtro.