Corso di Microsoft Access

Query su piu' tabelle

 

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