Nella scorsa lezione abbiamo creato una query che ci forniva i dati dei libri e i relativi autori. Supponiamo ora di voler aggiungere anche i dati della casa editrice. Creiamo una tabella per le case editrici ed inseriamo alcuni record, per il nostro esempio sarà sufficiente che la tabella abbia i campi id_casa_editrice
e nome
.
Riprendiamo la query creata nella lezione precedente in modalità struttura, per aggiungere la tabella appena creata, clicchiamo col pulsante destro del mouse in uno spazio vuoto della finestra grigia. Nel menu che appare, clicchiamo su Mostra tabella
.
Dall'elenco che appare selezioniamo la tabella case_editrici
e aggiungiamola. Access dovrebbe effettuare automaticamente il collegamento con la tabella libri
, in caso contrario creaimo il collegamento manualmente. A questo punto possiamo aggiungere il campo nome
della casa editrice nella tabella in basso e salvare.
Una volta eseguita la query e visualizzato il risultato, possiamo applicare i filtri con le stesse modalità utilizzate per le tabelle. Ad esempio possiamo cercare i libri di un singolo autore o pubblicati in un certo anno. Possiamo utilizzare anche i criteri di ordinamento in modo analogo a quanto visto per le tabelle. Ad esempio possiamo ordinare i risultati pertitolo.
Per eliminare una tabella da una query, apriamo la query in struttura, clicchiamo con il tasto destro del mouse sulla tabella da cancellare e selezioniamo rimuovi tabella
.
Modificare i collegamenti tra tabelle
Supponiamo di avere, nella tabella degli autori, un record al quale non corrisponde alcun libro. In pratica inseriamo un autore con i suoi dati anagrafici ma nella tabella libri
non includiamo nessuna delle sue opere.
Se creiamo una query che elenca tutti gli autori della biblioteca, con i relativi libri, noteremo che all'elenco manca proprio l'autore senza libri.
Quando effettuiamo un collegamento, prendiamo tutti i dati delle tabelle che rispettino le condizioni stabilite dalla query. Nel nostro caso prendiamo tutti gli autori e tutti i libri che hanno un certo autore. Se manca una delle condizioni (es. libri che hanno autore) la combinazione non viene effettuata.
Quindi se un autore non ha scritto libri, non appare nella nostra query.
Rimane il problema di come elencare tutti i nomi degli autori ed i relativi testi elencando anche gli autori che non hanno scritto nulla.
Per risolvere la questione apriamo la query in modalità struttura; posizioniamo il cursore sulla linea che rappresenta il collegamento che unisce le tabelle libri
ed autori
e cliccando col pulsante destro scegliamo proprietà join
dal menu contestuale.
La finestra che appare, non solo risolve il problema ma ci aiuta a personalizzare il nostro collegamento.
Le opzioni sono piuttosto intuitive e basta leggere bene per non sbagliare:
- la prima corrisponde ad una query standard e visualizza tutti i campi della tabella libri e della tabella autori con i loro collegamenti, ma solo se tali collegamenti esistono; se un autore non ha libri (o se un libro non ha autore) le informazioni non appaiono nel risultato
- nella seconda (quella che fa al caso nostro) i record degli autori sono visualizzati tutti, anche se non ci sono libri corrispondenti
- La terza è simmetrica alla seconda
È utile sperimentare il comportamento di queste opzioni, effettuando qualche prova.