Indietro Avanti Ripeti Inizio Aiuto Esci

In questa lezione si apprenderà ad inserire in una query delle condizioni che consentano l'estrazione solo di alcuni record.

Per prima cosa apriamo il database che abbiamo creato ed arricchito durante queste lezioni. Poi, selezioniamo l'etichetta query, selezioniamo l' unica che abbiamo salvato, prova 1, e mandiamola in esecuzione con la combinazione di tasti alt+A.

Come avevamo notato nell'ultima lezione, ci comparirà una piccola finestra con cognome e nome, e i nostri record elencati in ordine alfabetico. A questo punto vorrei che tu tornassi in visualizzazione struttura (menù visualizza). Comparirà la griglia di costruzione della query. Vediamo di arricchirla ancora un po'.

Inseriamo un altro campo, ad esempio il campo sesso, nella riga campo. Per farlo, tramite tab o freccia destra, portati sulla colonna successiva a "nome", che è vuota. Poi apri, tramite alt+freccia giù, la casella elenco e scegli "sesso"; infine, premi esc per richiuderla. Noterai che anche la terza colonna si è riempita in tre righe: campo (indirizzi.sesso), tabella (indirizzi) e mostra (la casella è stata spuntata). Portiamoci ora, sempre nella colonna "sesso", sulla riga "criteri" e scriviamo = m. Poi, tramite il comando "esegui" del menù "query", mandiamola in esecuzione. Notiamo subito quanto è accaduto. Le colonne, come prevedibile, sono diventate tre: cognome, nome, sesso; le righe, invece, sono diminuite (sono solo due), ed entrambe, nel campo "sesso", contengono "m". Questo è dovuto al fatto che nella riga criteri del campo sesso noi abbiamo espresso la condizione di vedere soltanto i record che in quel campo contengono "m". Vediamo com' è stata espressa in SQL questa condizione. Scegli "visualizzazione SQL" dal menù visualizza.

Ecco il risultato:

SELECT Indirizzi.Cognome, Indirizzi.Nome, Indirizzi.Sesso

FROM Indirizzi

WHERE (((Indirizzi.Sesso)="m"))

ORDER BY Indirizzi.Cognome;

La prima riga è quasi uguale: l'unica differenza è che è stato aggiunto all'elenco anche il campo "sesso". La seconda riga è, ovviamente, identica. La terza riga invece è nuova, e precisamente contiene una nuova parola chiave, WHERE. Ti faccio notare anche la sequenza di parentesi e di virgolette che compongono l'istruzione. Questa prolissità è dovuta al fatto che le condizioni possono essere molto piu' complesse di questa. Al di là di tutto, questa riga significa: dove il campo sesso della tabella indirizzi è uguale a M. Anche la quarta riga, infine, rimane identica. Proviamo a togliere tutte le parentesi che sono presenti e mandiamo nuovamente in esecuzione la query. Noteremo che il risultato non cambia. Questo per dire che, mentre si crea una query in modo visuale è Access a scrivere l'SQL; ma dato che presto saremo noi a scriverlo, dato che ci accingiamo a lavorare direttamente in SQL, è molto importante capire bene il significato e la gerarchia di queste parentesi, sia per non fare della fatica inutile, sia per non scrivere cose poco leggibili. Abbiamo visto come limitare la visualizzazione dei record tramite specifiche condizioni. Proviamo a vederne un'altra.

Torniamo in visualizzazione struttura ed eliminiamo la condizione (riga criteri) del campo sesso. Basta che ti posizioni sulla colonna sesso, riga campo (utilizza sempre le quattro frecce per capire dove ti trovi), e poi, con freccia giù, trovi la riga criteri. A questo punto puoi cancellare tutto quanto è scritto. Nota che potresti già essere posizionato sul campo da cancellare, quindi fai attenzione. OK. Se sei riuscito a cancellare il criterio del campo sesso, puoi ora portarti sul criterio del cognome (due volte freccia sinistra o maiuscola+TAB). Ora scrivi:

like "B" & "*". Poi fai eseguire la query. Noterai che c'è soltanto un record, quello che ha come cognome "bianchi". Naturalmente vengono mostrate tre colonne: cognome, nome, sesso. Esaminiamo meglio la nostra condizione. Like significa come, simile. Quindi i record che nel campo cognome contengono qualcosa di simile a B e (la & in genere viene gestita come associazione), qualsiasi carattere (l'asterisco significa tutti i caratteri). Quindi, in questo caso, tutti i record il cui cognome inizi per B. Vediamo il risultato SQL della nuova condizione (prova a richiederlo ad Access senza che io ti dica come farlo). Ecco il risultato:

SELECT Indirizzi.Cognome, Indirizzi.Nome, Indirizzi.Sesso

FROM Indirizzi

WHERE (((Indirizzi.Cognome) Like "b" & "*"))

ORDER BY Indirizzi.Cognome;

Avremmo anche potuto chiedere ad Access di mostrarci anche cognomi che contengono al loro interno una certa lettera, non solo che iniziano con quell carattere. Vediamo come.

Vogliamo estrarre tutti I record che nel cognome contengono la lettera "a". Per farlo, torniamo in visualizzazione struttura e scriviamo:

Like "*" & "a" & "*" e poi eseguiamo la query.

Ci vengono mostrati solo due record: Bianchi e Forattini, che in effetti sono i soli che all' interno del campo cognome contengono la lettera "a".

Abbiamo visto che con "like" si può selezionare tutto ciò che comincia con quella lettera (lettera, & *), ma anche cercare una lettera qualsiasi all'interno della parola (*, & la lettera ricercata, &, e un altro *). Sarebbe come dire una serie qualunque di caratteri, il carattere che stiamo cercando, e un'altra serie qualsiasi di caratteri. Questo facile giochetto ci permette di svolgere ricerche molto interessanti. Supponiamo di avere una biblioteca, una nastroteca, un elenco di film. In questi elenchi ci sarà sicuramente il titolo, e generalmente il titolo è composto da tante parole. Supponiamo di scrivere "*" & "cuore" & "*". Verranno in questo caso mostrati tutti i titoli all'interno dei quali sia presente la parola "cuore", dovunque essa si trovi: sia all'inizio, alla fine o insomma dovunque. Queste sono ricerche davvero simpatiche e interessanti!

A questo punto possiamo considerare conclusa la nostra lezione, nella quale abbiamo imparato a selezionare in vari modi i record da estrarre. Chiudiamo allora la nostra query e salviamo le modifiche.

Indietro Avanti Ripeti Inizio Aiuto Esci