Estrarre i dati da una sola tabella è senz’altro utile, ma ci fornisce
solo una minima parte delle informazioni contenute in un database:
il processo di normalizzazione tende infatti a “spezzettare”
i dati tra tante tabelle. E’ pertanto indispensabile interrogare
contemporaneamente più tabelle per avere informazioni complesse
e più complete. Se interroghiamo la tabella fornitori avremo i
nominativi di coloro da cui compriamo la merce e se interroghiamo
la tabella prodotti avremo l’elenco delle merci acquistate;
ma solo interrogando queste tabelle insieme potremo sapere da
chi compriamo un certo prodotto, o quanti e quali prodotti ci
vende un certo fornitore.
Creare query su più tabelle è estremamente semplice, l’importante
è ricordarsi che per avere dati significativi si devono interrogare
tabelle che siano legate tra loro da una relazione.
Come già detto, anche in questa lezione e nelle prossime utilizzeremo
come esempio alcune tabelle del database Northwind.mdb che tutti
dovrebbero avere essendo fornito con Access.
Per creare query su più tabelle bisogna ricorrere alla creazione
in visualizzazione struttura. Doppio click su Crea una query in
visualizzazione struttura; dalla finestra Mostra tabella aggiungiamo
la tabella Fornitori e, senza chiudere la finestra, aggiungiamo
anche la tabella Prodotti. Nella parte superiore della finestra
di struttura avremo le due tabelle collegate da una riga che unisce
i campi mediante cui le due tabelle sono messe in relazione.
Facciamo un doppio click prima su NomeProdotto della tabella Prodotto
e poi su NomeSocietà della tabella Fornitori: la query è già fatta,
infatti se andiamo in visualizzazione foglio dati vedremo un elenco
di tutti i prodotti ognuno dei quali ha accanto il corrispondente
fornitore.
Se poi volessimo sapere anche il nome del contatto per ogni fornitore
basterebbe tornare in visualizzazione struttura e cliccare due
volte sul Contatto nella tabella Fornitori.
La logica che è dietro a questo tipo di query è molto semplice;
tra le tabelle Prodotti e Fornitori vi è una relazione di uno
a molti, cioè un fornitore ci può vendere più prodotti, ed un
prodotto viene acquistato solo da un fornitore (non è detto che
sia un esempio molto reale). Access non fa altro che estrarre
dalle due tabelle i campi che sono stati scelti (nell’esempio
il campo NomeProdotto della tabella Prodotto ed i campi NomeSocietà
e Contatto della tabella Fornitori) e ordinarli secondo la relazione,
elencando i prodotti ed riportando accanto il nome del fornitore
ed il nome del contatto.
Se poi anziché un elenco volessimo sapere il fornitore di un certo
prodotto basta indicare nella riga criteri della colonna NomeProdotto
il nome del prodotto stesso. Il risultato in visualizzazione dati
sarà una tabella di una sola riga con i dati richiesti. Se invece
volessimo sapere la società X che cosa ci fornisce non dovremmo
fare altro che indicare il nome della società nella riga criteri
della colonna NomeSocietà. Ancora, se la ricerca avvenisse partendo
dal nome del contatto basterebbe inserire come criterio il nominativo
del contatto.
In altre parole tutto quanto detto nella lezione precedente in
tema di criteri di ricerca, criteri di ordinamento ecc. vale anche
per le query su più tabelle.
Torna all'indice Generale del corso di Corso di Microsoft Access di Software Planet