Confrontare due tabelle e trovare solo i dati corrispondenti

Confrontare due tabelle e trovare solo i dati corrispondenti

A volte può essere necessario rivedere i record di una tabella di Access solo se ci sono record in un'altra tabella che contiene uno o più campi con dati corrispondenti. Si può ad esempio decidere di rivedere i record dei dipendenti che hanno elaborato almeno un ordine per identificare quelli che hanno diritto a un premio di produzione oppure di esaminare le informazioni di contatto dei clienti che risiedono nella stessa città di un dipendente in modo da abbinare i dipendenti ai clienti e organizzare visite di persona.

Per confrontare due tabelle di Access e trovare i dati corrispondenti, è possibile procedere come segue:

  • Creare una query che collega tramite join i campi di ogni tabella i cui campi contengono informazioni corrispondenti, usando una relazione esistente oppure un join appositamente creato per la query. Questo metodo assicura prestazioni ottimali, ossia la velocità con cui la query restituisce risultati, ma non consente di creare join tra campi contenenti tipi di dati diversi.

  • Creare una query che confronta i campi usandone uno come criterio per l'altro. Se si usa un campo come criterio di un altro, la procedura è in genere più lenta rispetto all'uso dei join, perché i join eliminano righe dai risultati di una query prima che le tabelle sottostanti vengano lette, mentre i criteri vengono applicati ai risultati dopo. È tuttavia possibile usare un campo come criterio per confrontare campi contenenti tipi di dati diversi, nel qual caso non si possono usare i join.

Questo articolo descrive come confrontare due tabelle per identificare dati corrispondenti e fornisce dati di esempio da usare con procedure di esempio.

Per saperne di più

Confrontare due tabelle con i join

Confrontare due tabelle usando un campo come criterio

Confrontare due tabelle con i join

Per confrontare due tabelle tramite join, creare una query di selezione che le include entrambe. Se tra le tabelle non esiste già una relazione nei campi che contengono i dati corrispondenti, creare un join sui campi da esaminare per il confronto. È possibile creare tutti i join necessari, ma ogni coppia di campi a cui vengono applicati deve essere di un tipo di dati uguale o compatibile.

Si supponga che un ricercatore universitario voglia verificare quali effetti abbiano avuto sui voti degli studenti le recenti modifiche apportate al programma di studi nella facoltà di matematica. In particolare, è interessato ai voti degli studenti specializzandi in matematica. Sono già disponibili una tabella in cui sono archiviati i dati delle discipline di specializzazione e un'altra che contiene i dati delle iscrizioni ai corsi. I dati dei voti sono archiviati nella tabelle Iscrizioni ai corsi, mentre quelli delle specializzazioni nella tabella Discipline di specializzazione. Per verificare come sono cambiati i voti per gli specializzandi in matematica dopo le recenti modifiche apportate al programma di studi, è necessario esaminare i record della tabella di iscrizioni che hanno record corrispondenti nella tabella di discipline di specializzazione.

Preparare i dati di esempio

In questo esempio verrà creata una query che determina come hanno influito le recenti modifiche al programma di studi nella facoltà di matematica sui voti degli studenti. Verranno usate le due tabelle di esempio seguenti, Discipline di specializzazione e Iscrizioni ai corsi. Aggiungere queste due tabelle di esempio a un database.

In Microsoft Office Access 2007 sono disponibili vari modi per aggiungere queste tabelle di esempio a un database. È possibile immettere i dati manualmente, copiare ogni tabella in un foglio di calcolo, ad esempio Microsoft Office Excel 2007, quindi importare i fogli di lavoro in Office Access 2007 oppure incollare i dati in un editor di testo, ad esempio il Blocco note, quindi importare i dati dai file di testo risultanti.

I passaggi di questa sezione illustrano come immettere i dati manualmente in un foglio dati vuoto e anche come copiare le tabelle di esempio in Excel e quindi importarle in Access.

Discipline di specializzazione

ID studente

Anno

Specializzazione

123456789

2005

MAT

223334444

2005

ITA

987654321

2005

MAT

135791357

2005

STOR

147025836

2005

BIOL

707070707

2005

MAT

123456789

2006

MAT

223334444

2006

ITA

987654321

2006

PSIC

135791357

2006

ST. ARTE

147025836

2006

BIOL

707070707

2006

MAT

Iscrizioni ai corsi

ID studente

Anno

Quadrimestre

Corso

N. corso

Voto

123456789

2005

3

MAT

221

A

123456789

2005

3

ITA

101

B

123456789

2006

1

MAT

242

C

123456789

2006

1

MAT

224

C

223334444

2005

3

ITA

112

A

223334444

2005

3

MAT

120

C

223334444

2006

1

SC. POL.

110

A

223334444

2006

1

ITA

201

B

987654321

2005

3

MAT

120

A

987654321

2005

3

PSIC

101

A

987654321

2006

1

MAT

221

B

987654321

2006

1

MAT

242

C

135791357

2005

3

STOR

102

A

135791357

2005

3

ST. ARTE

112

A

135791357

2006

1

MAT

120

B

135791357

2006

1

MAT

141

C

147025836

2005

3

BIOL

113

B

147025836

2005

3

CHIM

113

B

147025836

2006

1

MAT

120

D

147025836

2006

1

STAT

114

B

707070707

2005

3

MAT

221

B

707070707

2005

3

STAT

114

A

707070707

2006

1

MAT

242

D

707070707

2006

1

MAT

224

C

Se si vuole usare un foglio di calcolo per immettere i dati di esempio, è possibile saltare la sezione successiva.

Immettere manualmente i dati di esempio

  1. Aprire un database nuovo o esistente.

  2. Nel gruppo Tabelle della scheda Crea fare clic su Tabella.

    Barra multifunzione di Access

    Access aggiunge una nuova tabella vuota al database.

    Nota : Non è necessario eseguire questo passaggio se si apre un nuovo database vuoto, mentre è invece necessario se bisogna aggiungere una tabella al database.

  3. Fare doppio clic sulla prima cella nella riga di intestazione, quindi digitare il nome del campo nella tabella di esempio.

    Per impostazione predefinita, Access contrassegna i campi vuoti nella riga di intestazione con il testo Aggiungere nuovo campo, ad esempio:

    Nuovo campo in un foglio dati

  4. Usare i tasti di direzione per spostarsi alla successiva cella di intestazione vuota, quindi digitare il nome del secondo campo. È anche possibile fare doppio clic sulla nuova cella. Ripetere questo passaggio per ogni nome di campo.

  5. Immettere i dati nella tabella di esempio.

    Mentre si immettono i dati, Access deduce automaticamente un tipo di dati per ogni campo. Ogni campo include un tipo di dati specifico, ad esempio Numero, Testo o Data/Ora. L'impostazione dei tipi di dati assicura una corretta immissione dei dati ed evita che si verifichino errori, come l'uso di un numero di telefono in un calcolo. Per queste tabelle di esempio, accettare il tipo di dati applicato automaticamente da Access, ma verificare che sia corretto per ogni campo.

  6. Dopo avere completato l'immissione dei dati scegliere Salva o premere MAIUSC+F12.

    Verrà visualizzata la finestra di dialogo Salva con nome.

  7. Nella casella Nome tabella digitare il nome della tabella di esempio e quindi fare clic su OK.

    Viene usato il nome di ciascuna tabella di esempio, come Discipline di specializzazione, perché questi nomi vengono usati anche nelle query descritte nelle sezioni delle procedure di questo articolo.

Dopo aver immesso i dati di esempio, è possibile confrontare le due tabelle.

Saltare la seguente sezione, Creare i fogli di lavoro di esempio, se non servono informazioni su come creare un foglio di lavoro basato sui dati di esempio delle tabelle della sezione precedente.

Creare i fogli di calcolo di esempio

  1. Avviare il foglio di calcolo e creare un nuovo file vuoto. Se si usa Excel, all'avvio dell'applicazione viene creata una nuova cartella di lavoro vuota per impostazione predefinita.

  2. Copiare la prima tabella di esempio dalla sezione precedente e incollarla nel primo foglio di lavoro, a partire dalla prima cella. Assicurarsi di copiare la riga di intestazione, perché contiene i nomi dei campi della tabella di esempio.

  3. Usando la tecnica disponibile nel foglio di calcolo, assegnare al foglio di lavoro lo stesso nome della tabella di esempio. Ad esempio, quando si incollano i dati di esempio Iscrizioni ai corsi, assegnare al foglio di lavoro questo stesso nome.

  4. Ripetere i passaggi 2 e 3 copiando la seconda tabella di esempio in un foglio di lavoro vuoto che dovrà essere rinominato.

    Nota : Può essere necessario aggiungere fogli di lavoro al file del foglio di calcolo. Per informazioni sull'aggiunta di fogli di lavoro al file del foglio di calcolo in uso, vedere la relativa Guida.

  5. Salvare la cartella di lavoro in un percorso facile da ricordare nel computer o nella rete e passare alla serie successiva di passaggi.

Creare tabelle di database dai fogli di lavoro

  1. In un database nuovo o esistente:

    Nella scheda Dati esterni fare clic su Excel nel gruppo Importa.

    Barra multifunzione di Access

    -oppure-

    Fare clic su Altro e quindi selezionare un foglio di calcolo nell'elenco.

    Viene visualizzata la finestra di dialogo Recupera dati esterni - Foglio di calcolo di Nome programma.

  2. Fare clic su Sfoglia, individuare e aprire il file del foglio di calcolo creato nella procedura precedente, quindi fare clic su OK.

    Viene avviata l'Importazione guidata Foglio di calcolo.

    Per impostazione predefinita, nella procedura guidata viene selezionato il primo figlio della cartella di lavoro, ovvero Discipline di specializzazione se è stata seguita la procedura nella sezione precedente, e i dati del foglio di lavoro verranno visualizzati nella sezione inferiore della pagina della procedura guidata.

  3. Scegliere Avanti.

  4. Nella pagina successiva della procedura guidata selezionare la casella di controllo Intestazioni di colonna nella prima riga, quindi fare clic su Avanti.

  5. Nella pagina successiva usare le caselle di testo e gli elenchi di Opzioni per i campi per cambiare i nomi dei campi e i tipi di dati oppure per omettere alcuni campi dall'operazione di importazione. Per questo esempio, non è necessario apportare modifiche. Fare clic su Avanti.

  6. Nella pagina successiva selezionare l'opzione Nessuna chiave primaria, quindi fare clic su Avanti.

  7. Per impostazione predefinita, alla nuova tabella viene applicato il nome del foglio di lavoro. Accettare il nome nella casella Importa nella tabella, quindi fare clic su Fine.

  8. Nella pagina Salva i passaggi dell'operazione di importazione fare clic su Chiudi per completare la procedura guidata.

  9. Ripetere i passaggi da 1 a 7 finché non sarà stata creata una tabella da ogni foglio di lavoro del file del foglio di calcolo.

Confrontare le tabelle di esempio e trovare i record corrispondenti mediante join

Ora è possibile confrontare la tabella Iscrizioni ai corsi con la tabella Discipline di specializzazione. Poiché non sono state definite relazioni tra le due tabelle, è necessario creare join tra i campi appropriati nella query. Le tabelle hanno più di un campo in comune e sarà necessario creare un join per ogni coppia: ID studente, Anno e Corso (tabella Iscrizioni ai corsi) e Specializzazione (tabella Discipline di specializzazione). In questo esempio interessano solo le specializzazioni in matematica, quindi verrà usato un criterio di campo per limitare i risultati della query.

  1. Aprire il database in cui sono state salvate le tabelle di esempio.

  2. Nella scheda Crea fare clic su Struttura query.

  3. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella contenente i record da visualizzare, in questo esempio la tabella Iscrizioni ai corsi, quindi fare doppio clic sulla tabella con cui si sta effettuando il confronto, in questo esempio Discipline di specializzazione.

  4. Chiudere la finestra di dialogo Mostra tabella.

  5. Trascinare il campo ID studente della tabella Iscrizioni ai corsi sul campo ID studente della tabella Discipline di specializzazione. Tra le due tabelle nella griglia di struttura viene visualizzata una linea, che indica che è stato creato un join. Fare doppio clic sulla linea per aprire la finestra di dialogo Proprietà join.

  6. Esaminare le tre opzioni di questa finestra di dialogo Proprietà join. Per impostazione predefinita, è selezionata l'opzione 1. In alcuni casi, è necessario modificare le proprietà dei join per includere altre righe di una tabella. Poiché si sta cercando di trovare solo i dati corrispondenti, lasciare il join impostato sull'opzione 1. Chiudere la finestra di dialogo Proprietà join facendo clic su Annulla.

  7. Si dovranno creare altri due join. A questo scopo trascinare il campo Anno dalla tabella Iscrizioni ai corsi sul campo Anno della tabella Discipline di specializzazione, quindi trascinare il campo Corso dalla tabella Iscrizioni ai corsi sul campo Specializzazione della tabella Discipline di specializzazione.

  8. Nella tabella Iscrizioni ai corsi fare doppio clic sull'asterisco (*) per aggiungere tutti i campi della tabella alla griglia di struttura della query.

    Nota : Quando si usa l'asterisco per aggiungere tutti i campi, nella griglia di struttura verrà visualizzata una sola colonna, che avrà il nome della tabella seguito da un punto (.) e da un asterisco (*). In questo esempio la colonna si chiama Iscrizioni ai corsi.*.

  9. Nella tabella Discipline di specializzazione fare doppio clic sul campo Specializzazione per aggiungerlo alla griglia.

  10. Deselezionare la casella di controllo nella riga Mostra della colonna Specializzazione nella griglia di struttura della query.

  11. Nella riga Criteri della colonna Specializzazioni digitare MAT.

  12. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

    La query viene eseguita e vengono visualizzati i voti di matematica solo per gli specializzandi in matematica.

Inizio pagina

Confrontare due tabelle usando un campo come criterio

A volte può essere necessario confrontare tabelle sulla base dei campi che includono dati corrispondenti ma di tipi diversi. Ad esempio, un campo di una tabella può avere il tipo di dati Numero e lo si vuole confrontare con un campo di un'altra tabella il cui tipo di dati è Testo. Campi che contengono dati simili ma di tipi diversi possono capitare quando i numeri vengono archiviati come testo, da progettazione o per altri motivi, ad esempio se vengono importati dati da un altro programma. Poiché non è possibile creare join tra campi con tipi di dati diversi, è necessario usare un metodo diverso per confrontarli. Per confrontare due campi con tipi di dati diversi, è possibile usare un campo come criterio dell'altro.

Si supponga che un ricercatore universitario voglia verificare quali effetti abbiano avuto sui voti degli studenti le recenti modifiche apportate al programma di studi nella facoltà di matematica. In particolare, è interessato ai voti degli studenti specializzandi in matematica. Sono già disponibili le tabelle Discipline di specializzazione e Iscrizioni ai corsi. I dati dei voti sono archiviati nella tabelle Iscrizioni ai corsi, mentre quelli delle specializzazioni nella tabella Discipline di specializzazione. Per verificare come sono cambiati i voti per gli specializzandi in matematica, è necessario esaminare i record della tabella di iscrizioni che hanno record corrispondenti nella tabella di discipline di specializzazione. Tuttavia, uno dei campi da usare per confrontare le tabelle ha un tipo di dati diverso rispetto alla controparte.

Per confrontare due tabelle usando un campo come criterio, creare una query di selezione che le include entrambe. Includere i campi da visualizzare e anche quello che si vuole usare come criterio. Creare quindi il criterio per confrontare le tabelle. Si possono creare tutti i criteri necessari.

Per illustrare questo metodo, verranno usate le tabelle di esempio della sezione precedente, ma cambiando il tipo di dati del campo ID studente della tabella Discipline di specializzazione da Numero a Testo. Poiché non è possibile creare un join tra due campi con tipi di dati diversi, per confrontare i due campi ID studente sarà necessario usare un campo come criterio per l'altro.

Cambiare il tipo di dati del campo ID studente della tabella Discipline di specializzazione

  1. Aprire il database in cui sono state salvate le tabelle di esempio.

  2. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella Discipline di specializzazione, quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

    La tabella Discipline di specializzazione verrà aperta in visualizzazione Struttura.

  3. Nella colonna Tipo di dati cambiare l'impostazione per il campo ID studente da Numero a Testo.

  4. Chiudere la tabella Discipline di specializzazione. Fare clic su quando viene richiesto di salvare le modifiche.

Confrontare le tabelle di esempio e trovare i record corrispondenti usando un criterio di campo

Nella procedura seguente viene descritto come confrontare due campi ID studente usando il campo dalla tabella Iscrizioni ai corsi come criterio per il campo dalla tabella Discipline di specializzazione. Usando la parola chiave Like è possibile confrontare i campi anche se hanno tipi di dati diversi.

  1. Nel gruppo Altro della scheda Crea fare clic su Struttura query.

  2. Nella finestra di dialogo Mostra tabella fare doppio clic su Iscrizioni ai corsi, quindi fare doppio clic su Discipline di specializzazione.

  3. Chiudere la finestra di dialogo Mostra tabella.

  4. Trascinare il campo Anno dalla tabella Iscrizioni ai corsi sul campo Anno della tabella Discipline di specializzazione, quindi trascinare il campo Corso dalla tabella Iscrizioni ai corsi sul campo Specializzazione della tabella Discipline di specializzazione. Poiché questi campi hanno lo stesso tipo di dati, è possibile confrontarli tramite join. I join sono il metodo consigliato per confrontare campi con lo stesso tipo di dati.

  5. Fare doppio clic sull'asterisco (*) nella tabella Iscrizioni ai corsi per aggiungere tutti i campi della tabella alla griglia di struttura della query.

    Nota : Quando si usa l'asterisco per aggiungere tutti i campi, nella griglia di struttura verrà visualizzata una sola colonna, che avrà il nome della tabella seguito da un punto (.) e da un asterisco (*). In questo esempio la colonna si chiama Iscrizioni ai corsi.*.

  6. Nella tabella Discipline di specializzazione fare doppio clic sul campo ID studente per aggiungerlo alla griglia.

  7. Deselezionare la casella di controllo nella riga Mostra della colonna ID studente nella griglia di struttura. Nella riga Criteri della colonna ID studente digitare Like [Iscrizioni ai corsi].[ID studente].

  8. Nella tabella Discipline di specializzazione fare doppio clic sul campo Specializzazione per aggiungerlo alla griglia.

  9. Deselezionare la casella di controllo nella riga Mostra della colonna Specializzazione della griglia di struttura. Nella riga Criteri digitare MAT.

  10. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

    La query viene eseguita e vengono visualizzati i voti di matematica solo per gli specializzandi in matematica.

Inizio pagina

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×