Trovare, nascondere o eliminare i dati duplicati

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

Questo articolo spiega come trovare e nascondere oppure eliminare i dati duplicati con Microsoft Office Access 2007. In generale, è consigliabile eliminare i valori duplicati laddove possibile, per ridurre i costi e aumentare l'accuratezza dei dati. Office Access 2007 offre diversi modi per trovare e nascondere o eliminare i valori duplicati, i più comuni dei quali sono illustrati in questo articolo.

Per saperne di più

Informazioni sui dati duplicati

Preparare alcuni dati di esempio

Trovare e modificare, nascondere o eliminare i dati duplicati di una singola tabella

Trovare e modificare, nascondere o eliminare i dati duplicati di più tabelle

Informazioni sui dati duplicati

Uno dei motivi principali per cui si usano i database relazionali consiste nella possibilità di evitare i dati duplicati. Con il passare del tempo, tuttavia, nei database vengono spesso inseriti valori duplicati, in particolare quando i dati vengono immessi da più utenti. In genere, l'eliminazione dei dati duplicati consente di risparmiare sui costi dell'archiviazione e di aumentare l'accuratezza dei dati. Questa accuratezza può a sua volta aiutare a prendere decisioni aziendali più efficaci. Se ad esempio si immette più di una volta un ordine di vendita, il cliente potrebbe ricevere merce non necessaria e la ridondanza potrebbe comportare costi aggiuntivi di spedizione e contabilità.

Significato della duplicazione

Prima di intervenire per identificare ed eliminare i record duplicati, tenere presente che è necessario fare affidamento sulle proprie conoscenze dei dati. A differenza del processo di progettazione di un database, non è possibile seguire una serie di regole o procedure specifiche per trovare ed eliminare accuratamente i record duplicati. Man mano che si procede, tenere presente che le query di database possono restituire record che sembrano duplicati ma che in realtà sono dati validi. La duplicazione apparente si verifica in genere quando nella query non si includono campi che identificano in modo univoco ogni record. Per altre informazioni su come includere i campi necessari in una query ed evitare falsi duplicati, vedere la sezione Identificare i record non duplicati più avanti in questo articolo.

È anche opportuno ricordare che non si possono eliminare tutti i dati duplicati, perché un certo livello di duplicazione è necessario per il corretto funzionamento del database. In altri termini, i database possono contenere ridondanze necessarie e non necessarie e bisogna assicurarsi di eliminare solo quelle non necessarie.

Le ridondanze necessarie rientrano solitamente in due categorie. Il primo tipo di ridondanza consente il funzionamento del database. I dati di un campo di chiave primaria vengono ad esempio duplicati ogni volta che è necessario stabilire una relazione uno-a-molti o molti-a-molti tra tabelle.

Il secondo tipo di ridondanza necessaria si manifesta mentre si usa il database. È ad esempio possibile che venga immesso diverse volte il nome di una città, di un fornitore o di una persona, come Paolo Rossi. In questo caso, non si rischia di duplicare i dati, perché altri campi del database, come i valori di chiave primaria, gli indirizzi e i codici postali, conterranno una quantità di informazioni sufficiente per evitare che i record vengano considerati duplicati.

Le ridondanze non necessarie possono verificarsi in vari modi:

  • Due o più record possono contenere campi duplicati.    Due record possono essere considerati duplicati anche se non tutti i relativi campi contengono valori corrispondenti. Nella figura seguente, ad esempio, sono visualizzati due record relativi ad Antonio Moreno Taquería.

    record duplicati per un cliente nella tabella clienti

    Anche se ogni record ha un ID cliente univoco (il valore nella colonna all'estrema sinistra), i valori dei campi Nome, Indirizzo e Città corrispondono. In questi casi, anche una corrispondenza parziale può rappresentare un buon motivo per usare le proprie conoscenze del business e rivedere i record per verificare se sono duplicati.

  • Due o più tabelle possono contenere dati simili.    Una tabella Clienti e una tabella Committenti possono contenere entrambe record relativi agli stessi clienti.

    tabelle clienti e acquirenti con dati sovrapposti

    Anche se le tabelle possono avere strutture diverse, entrambe contengono le stesse informazioni, ovvero i dati dei clienti, pertanto è consigliabile combinare in una singola tabella i valori univoci (non duplicati) ed eliminare la tabella aggiuntiva.

  • Due o più database possono contenere dati simili.    Se si scopre che due o più database contengono dati simili oppure si eredita un database che si sovrappone a quello corrente, è necessario confrontare i dati e la struttura dei database e quindi eseguire le operazioni necessarie per consolidarli.

    Il confronto manuale dei database, anche nel caso di database di piccole dimensioni, non è un'attività semplice. Se si desidera un supporto per il confronto, sono disponibili numerosi strumenti di terze parti per il confronto dei contenuti e della struttura di database di Access.

Nota : Se si eseguono i passaggi per eliminare i dati duplicati dalle tabelle ma invece sono ancora presenti nella maschera o nel report, il problema potrebbe essere dovuto a una struttura non corretta della maschera o del report. Verificare che le query e le tabelle sottostanti siano collegate correttamente e che le relative sezioni non includano più di un controllo associato alla stessa origine.

Per altre informazioni sulla struttura dei report, vedere l'articolo Modificare o cambiare un report.

Identificare i record non duplicati

In alcune situazioni, ad esempio quando si esaminano i dati restituiti da una query, alcuni record potrebbero sembrare duplicati, anche se le tabelle sottostanti apparentemente contengono solo record univoci. Quando la visualizzazione non include campi che identificano in modo univoco un record, possono verificarsi problemi. Questa figura mostra ad esempio i dati restituiti da una query.

La visualizzazione non include un campo che consente di identificare in modo univoco i record

In questa visualizzazione diversi record sembrano duplicati. Se si aggiungono uno o più campi alla query, ad esempio i nomi dei clienti o i campi di chiave primaria per ogni ordine (ID ordine), si scoprirà che ogni record è in effetti univoco, come illustrato qui:

la vista include ora il campo id ordine che consente di eliminare i record duplicati

In generale, quando si crea una query, è consigliabile includere uno o più campi che identificano in modo univoco ogni record. Solitamente, un campo di chiave primaria serve proprio a questo scopo, ma è anche possibile usare combinazioni di altri campi. Si possono ad esempio avere numerose istanze di un nome comune di contatto e di città, ma se si include un numero di telefono e un indirizzo, questa combinazione di dati diventa un record univoco.

Fattori da considerare quando si gestiscono i duplicati

Il modo in cui vengono gestiti i record duplicati dipende da diversi fattori:

  • La natura e l'entità della duplicazione    Si vedono dati duplicati all'interno di una singola tabella oppure due tabelle simili (nello stesso database o in due differenti) con dati sovrapposti? Oppure si vedono record duplicati in una visualizzazione basata su due o più tabelle correlate?

  • I requisiti specifici    Cosa si vuole fare con i dati duplicati? Si vogliono eliminare i record dal database o semplicemente nasconderli dalla visualizzazione? Oppure si vogliono eseguire operazioni di conteggio, media o somma dei valori nei record duplicati? Ha importanza quali record duplicati vengono eliminati o nascosti? In caso affermativo, si preferisce rivedere ed eliminare manualmente i record oppure eliminarli in base a una condizione? Si vogliono inoltre aggiornare o consolidare uno o più record prima di iniziare a eliminarli?

Le risposte a queste domande (o a questi tipi di domande), insieme alle proprie conoscenze dei dati, dovrebbero consentire di creare un piano per gestire i dati ridondanti.

Preparazione generale per la rimozione di duplicati

Se si sceglie di eliminare i record duplicati, è necessario prima di tutto gestire le eventuali relazioni esistenti tra le tabelle. In genere, nella maggior parte dei database si usano relazioni uno-a-molti. Si potrebbe ad esempio avere un numero ridotto di clienti, che però effettuano ognuno molti ordini. Di conseguenza, la tabella dei dati dei clienti risiede sul lato "uno" della relazione, mentre i dati degli ordini risiedono sul lato "molti".

Tenere presente questa regola mentre si procede: se i dati da eliminare risiedono sul lato "molti" di una relazione, è possibile eliminarli senza eseguire altri passaggi. Se invece risiedono sul lato "uno", è necessario impostare una proprietà nella relazione, altrimenti Access ne impedisce l'eliminazione.

Per altre informazioni sull'eliminazione dei dati sul lato "uno", vedere l'articolo Usare una query di eliminazione per eliminare uno o più record da un database.

Prima di iniziare a eliminare i dati ridondanti, preparare il database in uno o più modi seguenti:

  • Verificare che il database non sia di sola lettura.

  • Assicurarsi di avere le autorizzazioni necessarie per modificare o eliminare i record del database.

  • Chiedere a tutti gli altri utenti del database di chiudere gli oggetti con cui si vuole lavorare. In questo modo si evitano violazioni di blocco.

    Suggerimento : Se al database si connettono molti utenti, potrebbe essere necessario chiuderlo e quindi aprirlo di nuovo in modalità di accesso esclusivo. A questo scopo, fare clic sul pulsante Microsoft Office icona del pulsante di Access e quindi su Apri. Passare al database e selezionarlo, fare clic sulla freccia accanto al pulsante Apri e quindi su Apertura esclusiva.

    Apertura di un file in accesso esclusivo

  • Prima di eliminare i record, eseguire il backup del database. Non è possibile annullare un'operazione di eliminazione. L'unico modo per recuperare i record eliminati consiste nel ripristinarli da un backup. Tramite un'operazione di eliminazione potrebbero inoltre venire eliminati record di tabelle correlate, pertanto è consigliabile eseguire il backup dell'intero database prima di iniziare l'operazione.

    Eseguire il backup di un database

    1. Fare clic sul pulsante Microsoft Office icona del pulsante , sulla freccia accanto a Gestisci e quindi su Backup database.

      Viene visualizzata la finestra di dialogo Salva con nome e Access aggiunge la data corrente alla fine del nome file. Se ad esempio si ha un database denominato Beni, Access crea questo tipo di nome file: Beni_2006-10-29.

    2. Accettare i valori predefiniti per nome e percorso oppure selezionarne altri e quindi fare clic su Salva.

      Il file originale verrà chiuso in Access, verrà creato un backup e quindi il file originale verrà aperto di nuovo.

      Per ripristinare dati da un backup, chiudere e rinominare il file originale in modo che la copia di backup possa usare il nome della versione originale. Assegnare il nome della versione originale alla copia di backup e aprirla in Access.

Inizio pagina

Preparare alcuni dati di esempio

Le sezioni illustrative di questo articolo includono tabelle di dati di esempio. Nei passaggi si usano le tabelle di esempio per spiegare il funzionamento delle query. Se si preferisce, è anche possibile immettere o importare le tabelle di esempio in un database nuovo o esistente.

Access offre diversi 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 Office Excel 2007, e quindi importare i fogli di lavoro in Access oppure incollare i dati in un editor di testo, come il Blocco note, e quindi importarli 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 2007. Per altre informazioni sulla creazione e l'importazione di dati di testo, vedere l'articolo Importare o collegare dati in un file di testo.

Nei passaggi di questo articolo si usano le tabelle seguenti:

Tabella Clienti:

Nome società

Nome contatto

Indirizzo

Città

CAP

Tel.

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

Coho Winery

Daniela Guaita

Via Mercoledì 8

Firenze

34567

12 34 56 78

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

Fourth Coffee

Giorgio Cavaglieri

Via Domenica 25

Modena

56789

56 90 12 34

Tabella Dipendenti:

Last Name

First Name

Indirizzo

Città

Data di nascita

Data di assunzione

Ruspini

Davide

Piazza Martedì 28

Milano

05.02.68

10.06.94

Martino

Agostino

Via Giovedì 47

Bologna

22.05.57

22.11.96

Pica

Scotti

Via Mercoledì 15

Firenze

11.11.60

11.03.00

Tanara

Marco

Corso Venerdì 68

Bologna

22.03.64

22.06.98

Monaco

Massimiliano

Via Domenica 25

Modena

05.06.72

05.01.02

Guaita

Daniela

Via Mercoledì 8

Firenze

23.01.70

23.04.99

Garghentini

Davide

Piazza Venerdì 72

Parma

14.04.64

14.10.04

Giorgi

Adriana

Via Martedì 58

Piacenza

29.10.59

29.03.97

Tanara

Marco

Corso Venerdì 68

Bologna

22.03.64

20.06.98

Tabella Importo dovuto:

Nome società

Nome contatto

Indirizzo

Città

CAP

Tel.

Importo dovuto

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

€ 556,78

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

€ 1.893,24

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

€ 321,79

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

€ 457,68

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

€ 98,75

Coho Winery

Daniela Guaita

Via Mercoledì 8

Firenze

34567

12 34 56 78

€ 321,79

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

€ 297,45

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

€ 509,09

Fourth Coffee

Giorgio Cavaglieri

Via Domenica 25

Modena

56789

56 90 12 34

€ 98,75

Tabella Committenti:

Nome

Indirizzo

Città

Tel.

Fax

Baldwin Museum of Science

Piazza Martedì 28

Milano

45 67 89 01

45 67 89 01

Blue Yonder Airlines

Via Giovedì 47

Bologna

12 12 34 56

12 12 34 56

Coho Winery

Via Mercoledì 15

Firenze

12 23 45 67

12 23 45 67

Contoso Pharmaceuticals

Corso Venerdì 68

Bologna

12 34 56 78

12 34 56 78

Fourth Coffee

Via Domenica 25

Modena

12 45 67 89

12 45 67 89

Consolidated Messenger

Via Mercoledì 8

Firenze

12 34 56 78

23 67 89 01

Graphic Design Institute

Piazza Venerdì 72

Parma

67 89 01 23

67 89 01 23

Litware S.p.A.

Viale Lunedì 3

Piacenza

12 12 34 56

34 56 78 90

Tailspin Toys

Viale Lunedì 4

Piacenza

12 12 34 56

34 89 01 23

Immettere manualmente i dati di esempio

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

    immagine della 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.

  2. Fare doppio clic nella prima cella della riga di intestazione e digitare il nome del campo della tabella di esempio.

    Per impostazione predefinita, Access contrassegna i campi vuoti nella riga di intestazione con il testo Aggiungi nuovo campo, come indicato di seguito:

    Nuovo campo in un foglio dati

  3. Usare i tasti di direzione per passare alla successiva cella di intestazione vuota e quindi digitare il secondo nome. È anche possibile premere TAB o fare doppio clic nella nuova cella. Ripetere questo passaggio fino a immettere tutti i nomi dei campi.

  4. Immettere i dati nella tabella di esempio.

    Mentre si immettono i dati, Access imposta automaticamente il relativo tipo per ogni campo. Se non si è esperti di database relazionali, è consigliabile impostare un tipo di dati specifico, ad esempio Numero, Testo o Data/ora per ogni campo delle tabelle. Impostando i tipi di dati ci si assicura un'immissione accurata e si evitano errori, ad esempio l'uso di un numero di telefono in un calcolo. Per queste tabelle di esempio, consentire ad Access di impostare il tipo di dati.

  5. Dopo aver immesso tutti i dati, fare clic su Salva.

    Scelta rapida da tastiera: premere MAIUSC+F12.

    Verrà visualizzata la finestra di dialogo Salva con nome.

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

    Usare i nome di ogni tabella di esempio perché nelle query delle sezioni illustrative vengono usati questi nomi.

Creare i fogli di calcolo di esempio

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

  2. Copiare la prima tabella di esempio dalla sezione precedente e incollarla nel primo foglio di lavoro, a partire dalla prima cella.

  3. Usando la tecnica disponibile nel foglio di calcolo, assegnare al foglio di lavoro lo stesso nome della tabella di esempio. Se ad esempio la tabella di esempio si chiama Categorie, assegnare lo stesso nome al foglio di calcolo.

  4. Ripetere i passaggi 2 e 3 per copiare ogni tabella di esempio in un foglio di lavoro vuoto e rinominarlo.

    Nota : Può essere necessario aggiungere fogli di lavoro al file del foglio di calcolo. Per informazioni su come eseguire questa operazione, vedere la Guida del foglio di calcolo.

  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.

    immagine della 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, aprire il foglio di calcolo creato nei passaggi precedenti e quindi fare clic su OK.

    Viene avviata l'Importazione guidata Foglio di calcolo.

  3. Per impostazione predefinita, la procedura guidata seleziona il primo foglio della cartella di lavoro (Clienti, se sono stati seguiti i passaggi della sezione precedente) e i dati del foglio vengono visualizzati nella sezione inferiore della pagina. Fare clic su Avanti.

  4. Nella pagina successiva della procedura guidata fare clic su Intestazioni di colonne nella prima riga e quindi su Avanti.

  5. Facoltativamente, 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. In caso contrario, fare clic su Avanti.

  6. Lasciare selezionata l'opzione Chiave primaria aggiunta automaticamente e quindi fare clic su Avanti.

  7. Per impostazione predefinita, Access applica il nome del foglio di lavoro alla nuova tabella. Accettare il nome o immetterne un altro e quindi fare clic su Fine.

  8. Ripetere i passaggi da 1 a 7 fino a creare una tabella da ogni foglio di lavoro della cartella di lavoro di Excel.

Inizio pagina

Trovare e modificare, nascondere o eliminare i dati duplicati di una singola tabella

I passaggi delle sezioni seguenti illustrano i modi più comuni per trovare e modificare, nascondere o eliminare i valori duplicati in una singola tabella.

Trovare record con alcuni campi che corrispondono completamente o in parte

Visualizzare record univoci nascondendo i duplicati

Visualizzare record distinti specificando quali duplicati includere nei risultati

Usare funzioni di aggregazione (Conteggio, Somma, Media) sui record duplicati

Usare una query di eliminazione per eliminare i record duplicati

Impedire agli utenti di immettere dati duplicati

Trovare record con alcuni campi che corrispondono completamente o in parte

Il processo di ricerca di record contenenti valori completamente o parzialmente corrispondenti consiste nei passaggi generali seguenti:

  • Creare una query utilizzando la procedura guidata di ricerca dei duplicati. Per impostazione predefinita, la query restituisce record corrispondenti solo quando i valori di ogni campo corrispondono carattere per carattere. Se si desidera trovare le corrispondenze parziali, è possibile utilizzare un'espressione nella query oppure modificare il codice SQL (Structured Query Language).

  • Facoltativamente, modificare i valori di campo o eliminare i record quando si analizzano i risultati della query in visualizzazione Foglio dati.

  • Facoltativamente, modificare il codice SQL (Structured Query Language) nella query per cercare valori che corrispondono parzialmente. Se non si modifica il codice SQL, la query restituisce solo i record in cui i valori dei campi specificati corrispondono carattere per carattere.

I passaggi di questa sezione spiegano come creare una query di ricerca duplicati e come modificarla per cercare corrispondenze parziali. Nei passaggi viene usata la tabella Clienti riportata di seguito. Per usare la tabella in un database, vedere la sezione precedente Preparare alcuni dati di esempio di questo documento. È possibile adattare i passaggi in base ai propri dati.

Nome società

Nome contatto

Indirizzo

Città

CAP

Tel.

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

Coho Winery

Daniela Guaita

Via Mercoledì 8

Firenze

34567

12 34 56 78

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

Fourth Coffee

Giorgio Cavaglieri

Via Domenica 25

Modena

56789

56 90 12 34

Creare una query di ricerca duplicati

  1. Nel gruppo Altro della scheda Crea fare clic su Creazione guidata Query.

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Nuova query fare clic su Creazione guidata Query ricerca duplicati e quindi su OK.

    Se viene visualizzato un messaggio di avviso indicante che la caratteristica non è installata, fare clic su per installare la procedura guidata.

  3. Nell'elenco di tabelle selezionare quella che contiene i dati duplicati e quindi fare clic su Avanti.

  4. Nell'elenco di campi disponibili, selezionare solo quello o quelli che contengono informazioni duplicate. Se si usa la tabella Clienti, aggiungere solo i campi Nome società, Indirizzo e Città, perché sono gli unici che contengono valori corrispondenti carattere per carattere. Fare clic su Avanti.

    Nota : Se i campi da aggiungere in questo passaggio non contengono corrispondenze carattere per carattere, la query potrebbe non restituire risultati.

  5. Nell'elenco successivo di campi disponibili selezionare il campo o i campi che contengono i dati che si desidera analizzare o aggiornare oppure quelli che contengono i dati che possono essere utili per distinguere i record duplicati da quelli non duplicati. Se si utilizza la tabella Clienti, aggiungere i campi Nome contatto e Tel., in quanto i dati in essi contenuti possono essere utili per trovare i valori duplicati e identificare il motivo per cui tali valori sono stati immessi. Fare clic su Avanti.

  6. Accettare il nome suggerito, ovvero Trova duplicati per Clienti, oppure immetterne un altro e quindi fare clic su Fine per eseguire la query. Se è stata usata la tabella Clienti, questo è il risultato:

Nome società

Indirizzo

Città

Nome contatto

Tel.

Fourth Coffee

Via Domenica 25

Modena

Massimiliano Monaco

12 45 67 89

Fourth Coffee

Via Domenica 25

Modena

Giorgio Cavaglieri

56 90 12 34

  1. Al momento della creazione della tabella Clienti potrebbero essere stati notati più di due record duplicati. La tabella contiene infatti quattro record duplicati. Gli altri duplicati non vengono visualizzati in quanto i relativi valori nel campo Indirizzo non corrispondono carattere per carattere. È possibile modificare la query affinché restituisca i valori che corrispondono in parte, come illustrato nella procedura seguente.

Personalizzare la query per trovare corrispondenze parziali

  1. Passare alla visualizzazione SQL della query. A tale scopo, è possibile:

    • Fare clic con il pulsante destro del mouse sulla scheda documento per la query e quindi scegliere Visualizzazione SQL.

    • Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query e quindi scegliere Visualizzazione SQL.

  2. Modificare il codice SQL per trovare e confrontare i valori parziali.

    Se nella procedura precedente è stata utilizzata la tabella Clienti, verrà visualizzata l'istruzione SQL seguente:

    SELECT Clienti.[Nome società], Clienti.[Indirizzo], Clienti.[Città], Clienti.[Nome contatto], Clienti.[Tel.]
    FROM Clienti
    WHERE (((Clienti.[Nome società]) In (SELECT [Nome società] FROM [Clienti] As Tmp GROUP BY [Nome società],[Indirizzo],[Città] HAVING Conteggio(*)>1 And [Indirizzo] = [Clienti].[Indirizzo] And [Città] = [Clienti].[Città])))
    ORDER BY Clienti.[Nome società], Clienti.[Indirizzo], Clienti.[Città];

    In questo caso, la clausola WHERE usa una seconda istruzione SELECT per confrontare ogni record con tutti gli altri della tabella in modo da identificare le serie di duplicati.

    Si supponga che sia necessario modificare il campo Indirizzo per ottenere corrispondenze parziali. La tabella seguente illustra come modificare le istruzioni in modo che le corrispondenze vengano trovate solo per i primi sette caratteri del campo. Le modifiche sono indicate in grassetto:

Istruzione SQL

Descrizione

SELECT Clienti.[Nome società], Clienti.[Indirizzo], Clienti.[Città], Clienti.[Nome contatto], Clienti.[Tel.]

Nessuna modifica. Si vogliono vedere gli stessi campi, incluso l'intero campo Indirizzo per ogni serie di record duplicati.

FROM Clienti

Nessuna modifica.

WHERE (((Clienti.Nome società) In (SELECT [Nome società] FROM [Clienti] As Tmp GROUP BY [Nome società],Left([Indirizzo],7) ,[Città] HAVING

Sostituire il campo ([Indirizzo]) con una chiamata di funzione che agisce sul campo Indirizzo (Left([Indirizzo],7)) per determinare la duplicazione. In questo modo vengono verificati i primi sette caratteri del campo Indirizzo invece del valore dell'intero campo. Per trovare la corrispondenza con più o meno caratteri, immettere rispettivamente un numero più alto o più basso.

Conteggio(*)>1 And Left([Indirizzo],7) =Left([Clienti].[Indirizzo],7) And [Città] = [Clienti].[Città])))

Per confrontare i primi sette caratteri del campo Indirizzo di un record con quelli di un altro record, sostituire [Indirizzo] con la chiamata di funzione Left([Indirizzo],7) e [Clienti].[Indirizzo] con la chiamata di funzione Left([Clienti].[Indirizzo],7).

ORDER BY Clienti.Nome società, Clienti.Indirizzo, Clienti.Città;

Nessuna modifica.

  1. Al termine della modifica dell'istruzione, fare clic su Esegui Icona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

    La query restituisce ora tutti e quattro i record duplicati, perché trova la corrispondenza solo dei primi sette caratteri, a partire da sinistra, del campo Indirizzo:

Nome società

Indirizzo

Città

Nome contatto

Tel.

Coho Winery

Via Mercoledì 15

Firenze

Guido Pica

12 23 45 67

Coho Winery

Via Mercoledì 8

Firenze

Daniela Guaita

12 34 56 78

Fourth Coffee

Via Domenica 25

Modena

Massimiliano Monaco

12 45 67 89

Fourth Coffee

Via Domenica 25

Modena

Giorgio Cavaglieri

56 90 12 34

Modificare manualmente i record

  1. Aprire in visualizzazione Foglio dati la query creata nelle serie di passaggi precedenti.

  2. Eseguire una delle operazioni seguenti:

    • Per modificare il valore di un campo, selezionare il campo e immettere un nuovo valore.

    • Per eliminare un intero record, ossia una riga, fare clic sul selettore di record (la casella vuota accanto alla riga) e premere CANC.

      Nota : Se i record duplicati sono troppi per essere eliminati manualmente, è possibile creare ed eseguire una query di eliminazione. Per i passaggi di base richiesti per la creazione e l'esecuzione di una query di eliminazione, vedere la sezione Usare una query di eliminazione per eliminare i record duplicati più avanti in questo articolo.

      Per informazioni più complete sull'uso delle query di eliminazione, tra cui come pianificare un'eliminazione e come cambiare le relazioni tra tabelle ed eliminare i dati correlati, vedere l'articolo Usare una query di eliminazione per eliminare uno o più record da un database.

Inizio della sezione

Visualizzare record univoci nascondendo i duplicati

La maggior parte delle tabelle di database include un campo che identifica in modo univoco ogni record, in genere un campo di chiave primaria. Quando si progetta una query e si nascondono o si omettono questi tipi di campo, potrebbe sembrare che alcuni record siano duplicati perché i valori di tutti i campi restituiti corrispondono.

Questa figura illustra ad esempio il risultato di una query in cui due ordini (nella casella rossa) sembrano duplicati.

query basata sulla tabella clienti, in cui due record hanno valori corrispondenti in tutti i campi

Includendo tuttavia nella query un campo di chiave primaria, ad esempio un ID ordine, o un altro campo che identifica in modo univoco ogni record, come una data di spedizione, si scopre che i record non sono in realtà duplicati. I passaggi di questa sezione spiegano come nascondere i record duplicati in cui i valori di tutti i campi restituiti dalla query corrispondono. È ad esempio possibile nascondere uno dei record di Antonio Moreno Taqueria, ma non quelli di Blauer See Delikatessen, perché i campi Indirizzo contengono valori diversi.

Tenere presente questa regola prima di procedere: due o più record vengono considerati duplicati solo quando tutti i campi dei risultati della query contengono gli stessi valori. Se i valori sono diversi anche in un singolo campo, ogni record è univoco e non è possibile nascondere questi record con le tecniche descritte qui. Se si vogliono nascondere questi tipi di record duplicati, è possibile usare una query di totalizzazione con una funzione di aggregazione, ad esempio PRIMO, MIN, MAX e così via. Per informazioni su questa procedura, vedere la sezione Visualizzare record distinti specificando quali duplicati includere nei risultati più avanti in questo articolo.

Access offre due modi per visualizzare solo i valori univoci in un set di risultati di una query:

  • Se è stato nascosto il campo di chiave primaria, o un altro campo che rende univoco un record, scoprire questa colonna.

  • Creare una query di selezione e quindi impostare la proprietà Valori univoci della query su . Quando la query trova valori duplicati, ne visualizza solo uno, ossia il primo che trova, e nasconde il resto.

I passaggi di questa sezione spiegano come usare entrambe le tecniche.

Visualizzare i campi nascosti

  1. Con la query aperta in visualizzazione Foglio dati, fare clic con il pulsante destro del mouse in un punto qualsiasi della riga di intestazione, ossia quella che contiene le intestazioni di colonna, e scegliere Scopri colonne.

  2. Nella finestra di dialogo Scopri colonne selezionare la casella di controllo accanto a ogni campo da aggiungere al foglio dati, quindi fare clic su OK.

Impostare la proprietà Valori univoci

Nota : Dopo aver impostato la proprietà Valori univoci di una query su , non è possibile modificare i valori dei campi o eliminare dati con la query aperta in visualizzazione Foglio dati. Per modificare o eliminare dati, aprire la tabella sottostante in visualizzazione Foglio dati.

  1. Nel gruppo Altro della scheda Crea fare clic su Creazione guidata Query.

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Nuova query fare clic su Creazione guidata Query semplice, quindi fare clic su OK.

    Se viene visualizzato un messaggio di avviso indicante che la caratteristica non è installata, fare clic su per installare la procedura guidata.

  3. Nell'elenco di tabelle selezionare quella che contiene i record duplicati e quindi fare clic su Avanti.

  4. Nell'elenco di campi disponibili, selezionare solo quello o quelli che contengono informazioni duplicate, quindi fare clic su Avanti.

  5. Fare di nuovo clic su Avanti senza selezionare altri campi. Se si aggiungono altri campi, è possibile che Access consideri alcuni record duplicati come univoci.

  6. Accettare il nome suggerito per la query oppure immetterne un altro, fare clic su Modificare la struttura della query e quindi su Fine per aprire la query in visualizzazione Struttura.

  7. Fare clic con il pulsante destro del mouse nell'area vuota nella metà superiore della finestra di progettazione query e quindi scegliere Proprietà.

  8. Nella finestra delle proprietà della query individuare la proprietà Valori univoci e impostarla su .

    visualizzazione della finestra delle proprietà della query

  9. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati. Se i dati contengono dati duplicati, ne verrà visualizzato solo uno.

Inizio della sezione

Visualizzare record distinti specificando quali duplicati includere nei risultati

Se si hanno record duplicati, si potrebbe voler visualizzare solo valori distinti, ossia un record per ogni set di duplicati. Per eseguire una query in modo da trovare uno specifico record duplicato, si usa la cosiddetta query di totalizzazione. Quando si aggiungono i campi, la query di totalizzazione considera ogni campo come un gruppo ed è possibile eseguire una funzione detta di aggregazione sui dati di un gruppo. Queste funzioni, a loro volta, possono restituire un solo record da un set di duplicati.

È possibile usare in diversi modi una query di totalizzazione e una funzione di aggregazione con i dati:

  • Usare la funzione Primo per visualizzare solo il record immesso per primo.

  • Usare la funzione Ultimo per visualizzare solo il record immesso per ultimo.

  • Usare la funzione Max o Min per visualizzare solo il record con il valore massimo o minimo di un campo specificato. È ad esempio possibile usare la funzione Max per visualizzare il record con la data più recente oppure la funzione Min per visualizzare il record con la data meno recente.

    Nota : Non è possibile modificare i dati restituiti da questo tipo di query. Per modificare o eliminare dati, aprire la tabella sottostante in visualizzazione Foglio dati.

I passaggi di questa sezione spiegano come eseguire una query per trovare i record originali, più recenti e meno recenti. Viene usata la tabella Dipendenti.

Last Name

First Name

Indirizzo

Città

Data di nascita

Data di assunzione

Ruspini

Davide

Piazza Martedì 28

Milano

05.02.68

10.06.94

Martino

Agostino

Via Giovedì 47

Bologna

22.05.57

22.11.96

Pica

Scotti

Via Mercoledì 15

Firenze

11.11.60

11.03.00

Tanara

Marco

Corso Venerdì 68

Bologna

22.03.64

22.06.98

Monaco

Massimiliano

Via Domenica 25

Modena

05.06.72

05.01.02

Guaita

Daniela

Via Mercoledì 8

Firenze

23.01.70

23.04.99

Garghentini

Davide

Piazza Venerdì 72

Parma

14.04.64

14.10.04

Giorgi

Adriana

Via Martedì 58

Piacenza

29.10.59

29.03.97

Tanara

Marco

Corso Venerdì 68

Bologna

22.03.64

20.06.98

Se si vuole usare la tabella in un database, vedere i passaggi della sezione Preparare alcuni dati di esempio più indietro in questo articolo.

Usare una query di totalizzazione

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

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella che contiene i dati duplicati e quindi fare clic su Chiudi.

    La tabella viene visualizzata nella sezione superiore della finestra di progettazione query.

  3. Aggiungere solo il campo o i campi che contengono i dati duplicati. È possibile fare doppio clic in un campo oppure trascinarlo dalla finestra della tabella alla riga Campo nella griglia di struttura.

    Se si usa la tabella di esempio Dipendenti, aggiungere i campi Cognome, Nome e Data di nascita, perché sono questi che determinano la duplicazione.

  4. Aggiungere il campo che specifica i criteri di selezione.

    Nella tabella di esempio Dipendenti, aggiungere il campo Data di assunzione, perché contiene due valori diversi per il dipendente.

    Nota : Non aggiungere altri campi alla griglia. La query di totalizzazione deve includere solo il campo o i campi che contengono dati duplicati e un altro campo che contiene i dati da usare nel test.

  5. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Totali Icona del pulsante . Nella griglia di struttura viene visualizzata la riga Totale e nelle colonne contenente il campo della tabella l'opzione Raggruppa per.

  6. Lasciare la riga Totale per tutti i campi impostata su Raggruppa per e quindi fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati. Se si usano i dati della tabella precedente, la query restituisce due volte "Marco Tanara" perché i suoi record duplicati hanno date di assunzione diverse.

  7. Tornare in visualizzazione Struttura e specificare una condizione per selezionare un solo record tra i duplicati. Per usare i dati di esempio, cambiare il valore della colonna Data di assunzione nella riga Totale come segue:

    • Per visualizzare il record originale, cambiare il valore in Primo.

    • Per visualizzare il record immesso più di recente, cambiare il valore in Ultimo.

    • Per selezionare un record in base al valore di un campo specificato, è necessario usare la funzione Max o Min. In questo esempio si vuole visualizzare il record con la data di assunzione meno recente. Quindi, cambiare il valore in Min.

  8. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati.

Se la query produce i risultati desiderati, è possibile sostituirla con una query di eliminazione ed eseguirla per eliminare i record duplicati in modo semplice e immediato. Per informazioni sull'esecuzione di una query di eliminazione, vedere la sezione Usare una query di eliminazione per eliminare i record duplicati più avanti in questo articolo.

Inizio della sezione

Usare funzioni di aggregazione (Conteggio, Somma, Media) sui record duplicati

Oltre a restituire un record specifico tra un gruppo di duplicati, è anche possibile usare le funzioni di aggregazione per contare il numero di record duplicati o riepilogare i dati di un set di duplicati. In genere, queste funzioni vengono eseguite prima di procedere al consolidamento o all'eliminazione dei dati duplicati.

Per eseguire queste attività, creare una query di totalizzazione che usa le funzioni di aggregazione, ad esempio Conteggio, Somma e Media, per riepilogare i dati di una tabella.

Nota : Con la query di totalizzazione aperta in visualizzazione Foglio dati, non è possibile modificare i valori dei campi o eliminare i dati. Per modificare o eliminare dati, aprire la tabella sottostante in visualizzazione Foglio dati.

Nei passaggi di questa sezione si usa la tabella Importo dovuto.

Nome società

Nome contatto

Indirizzo

Città

CAP

Tel.

Importo dovuto

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

€ 556,78

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

€ 1.893,24

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

€ 321,79

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

€ 457,68

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

€ 98,75

Coho Winery

Daniela Guaita

Via Mercoledì 8

Firenze

34567

12 34 56 78

€ 321,79

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

€ 297,45

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

€ 509,09

Fourth Coffee

Giorgio Cavaglieri

Via Domenica 25

Modena

56789

56 90 12 34

€ 98,75

Se si vuole usare la tabella in un database, vedere i passaggi della sezione Preparare alcuni dati di esempio più indietro in questo articolo.

Creare una query di totalizzazione

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

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Mostra tabella fare clic sulla tabella da usare nella query oppure su Aggiungi e quindi su Chiudi per chiudere la finestra di dialogo. Se si usano i dati di esempio, aggiungere la tabella Importo dovuto alla query.

  3. Aggiungere i campi che contengono dati duplicati.

    Se si usa la tabella Importo dovuto, aggiungere i campi Nome società e Città perché sono quelli che determinano la duplicazione.

  4. Aggiungere il campo che fornisce i criteri di selezione. Se si usa la tabella Importo dovuto, aggiungere il campo Importo dovuto.

  5. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Totali Icona del pulsante . Nella griglia di struttura viene visualizzata la riga Totale e nella riga di ogni campo l'opzione Raggruppa per.

  6. Eseguire una delle operazioni seguenti in base a specifici requisiti:

    • Per contare un numero di record, selezionare il campo che contiene i valori da contare e quindi impostare il relativo valore nella riga Totale su Conteggio. Se si usano i dati di esempio, impostare il campo Importo dovuto su Conteggio.

    • Per calcolare un importo totale, impostare il valore del campo su Somma.

      Nota : Le query di totalizzazione possono visualizzare solo informazioni di riepilogo e non i singoli valori.

  7. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati.

Inizio della sezione

Usare una query di eliminazione per eliminare i record duplicati

Dopo aver verificato che una tabella contiene record duplicati, è possibile eliminare i dati indesiderati creando ed eseguendo una query di eliminazione. Il processo di creazione ed esecuzione di una query di eliminazione prevede in genere questi passaggi generali:

  • Pianificare l'eliminazione. Come parte di questo processo, stabilire se i dati da eliminare sono correlati a quelli di un'altra tabella. In caso affermativo, è necessario determinare se i dati risiedono sul lato "uno" oppure sul lato "molti" di una relazione uno-a-molti. Se i dati risiedono sul lato "uno", è necessario abilitare una proprietà nella relazione prima di poterli eliminare. Se invece risiedono sul lato "molti", è possibile creare ed eseguire la query senza altri interventi. Per esaminare le relazioni di un database, è possibile usare lo strumento Relazioni. Per avviare lo strumento, nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

    Per altre informazioni sulla pianificazione e l'esecuzione di query di eliminazione, vedere l'articolo Usare una query di eliminazione per eliminare uno o più record da un database.

  • Creare una query, ad esempio una query di selezione o una query a valori univoci, e aggiungere o modificare i criteri finché la query non restituisce solo i dati da eliminare.

  • Convertire la query in una query di eliminazione e quindi eseguirla per eliminare i dati indesiderati.

Importante : I risultati di una query di eliminazione non possono essere annullati. Per questo motivo, è consigliabile eseguire un backup del database prima di eseguirla. Per informazioni, vedere Eseguire il backup di un database più indietro in questo articolo.

I passaggi seguenti spiegano come creare una query di selezione, convertirla in una query di eliminazione ed eseguirla per eliminare i record.

Come creare una query di selezione

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

    immagine della barra multifunzione di access

    Verranno visualizzati Progettazione query e la finestra di dialogo Mostra tabella.

  2. Selezionare la tabella sul lato "uno" della relazione, fare clic su Aggiungi e quindi su Chiudi.

    La tabella viene visualizzata in una finestra nella sezione superiore della griglia di struttura della query. La finestra contiene tutti i campi della tabella. Questa figura illustra una tipica tabella nella finestra di progettazione query.

    Una tabella in Progettazione query

  3. Fare doppio clic sull'asterisco (*) per aggiungere tutti i campi della tabella alla griglia di struttura.

    Se si aggiungono tutti i campi della tabella, la query di eliminazione elimina interi record (righe) dalla tabella.

  4. Facoltativamente, aggiungere una colonna che consente di immettere criteri.

    Si supponga ad esempio che un cliente cessi la sua attività e sia necessario eliminare tutti i suoi ordini in sospeso. Per trovare solo questi record, è possibile aggiungere alla griglia di struttura i campi ID cliente e Data ordine.

  5. Se è stato seguito il passaggio precedente, immettere i criteri nella riga Criteri della griglia di struttura.

    È necessario usare criteri che consentano di restituire solo i record da eliminare. In caso contrario, la query di eliminazione elimina tutti i record della tabella. Per continuare con l'esempio del passaggio precedente, immettere il numero di ID del cliente che ha cessato l'attività e la data in cui i suoi ordini sono diventati non validi.

    Per altre informazioni sull'uso dei criteri, vedere l'articolo Usare una query di eliminazione per eliminare uno o più record da un database.

  6. Se è stato eseguito il passaggio precedente, deselezionare la casella di controllo Mostra per ogni campo dei criteri.

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

    Verificare che la query restituisca i record da eliminare.

  8. Tenere aperta la query e quindi procedere con i passaggi successivi.

Convertire la query di selezione in una query di eliminazione ed eseguirla per eliminare i dati

  1. Fare clic su Visualizzazione Struttura per passare dalla visualizzazione Foglio dati alla finestra di progettazione query.

  2. Nel gruppo Tipo di query della scheda Progettazione fare clic su Elimina.

    Access cambia la query di selezione in una query di eliminazione, nasconde la riga Mostra nella sezione inferiore della griglia di struttura e aggiunge la riga Elimina.

    Assicurarsi che la riga Elimina della colonna * (tutti i campi) visualizzi Da. Nelle colonne dei criteri dovrebbe essere invece visualizzato il valore Dove.

  3. Verificare di voler eliminare i dati e quindi fare clic su Esegui Icona del pulsante per eseguire la query e vedere i risultati in visualizzazione Foglio dati.

    Access chiede di confermare l'eliminazione.

    Fare clic su per eliminare i dati.

Nascondere il messaggio di conferma

Se non si desidera che venga visualizzato un messaggio di conferma ogni volta che si esegue una query di eliminazione o un'altra query di comando, eseguire la procedura seguente.

  • Fare clic sul pulsante Microsoft Office icona del pulsante , quindi su Opzioni di Access.

    Viene visualizzata la finestra di dialogo Opzioni di Access.

  • Fare clic su Impostazioni avanzate e quindi, nella sezione Modifica, deselezionare la casella di controllo Query di comando in Conferma.

  • Fare clic su OK per chiudere la finestra di dialogo Opzioni di Access.

Inizio della sezione

Impedire agli utenti di immettere dati duplicati

È possibile impedire agli utenti di immettere dati duplicati applicando diverse regole:

  • Impostare un campo in modo che possa contenere solo valori univoci.    Per implementare questa regola, eseguire una delle operazioni seguenti:

    • Designare il campo come chiave primaria. Questo è possibile solo se la tabella non include già una chiave primaria. Per impostare il campo come chiave primaria, aprire la tabella in visualizzazione Struttura, fare clic con il pulsante destro del mouse sul nome del campo e quindi scegliere Chiave primaria Callout 4 . In un campo di chiave primaria è possibile immettere solo valori univoci. Se gli utenti immettono un duplicato, viene visualizzato un messaggio.

    • Se la tabella contiene già una chiave primaria, impostare la proprietà Indicizzato del campo su Sì (Duplicati non ammessi) in visualizzazione Struttura della tabella. Questa proprietà impedisce al campo di accettare lo stesso valore per più di un record. Tenere presente che, in alcuni casi, ad esempio i campi che contengono informazioni su nomi e città, è necessario accettare i duplicati.

  • Specificare che una combinazione di valori in due o più campi deve essere univoca per ogni record.    Si supponga ad esempio di avere una tabella di dati di contatti. È possibile designare una combinazione di campi, ad esempio Nome contatto, Indirizzo e Città, come chiave primaria della tabella.

    Questo approccio è valido perché è altamente improbabile che due contatti con lo stesso nome condividano anche lo stesso indirizzo e la stessa città.

    Per creare una chiave primaria costituita da più campi, eseguire la procedura seguente:

    1. Aprire la tabella in visualizzazione Struttura.

    2. Fare clic sul selettore di riga a sinistra del primo campo per selezionare la prima riga.

    3. Tenere premuto CTRL mentre si fa clic sul selettore di riga per gli altri campi da includere nella chiave primaria.

    4. Fare clic con il pulsante destro del mouse e scegliere Chiave primaria Callout 4 dal menu di scelta rapida.

      Questo passaggio imposta la proprietà Indicizzato di ogni campo incluso nella chiave primaria su Sì (Duplicati ammessi), in modo che, ad esempio, sia possibile immettere lo stesso nome, indirizzo o città in più record, ma non sia possibile immettere una combinazione identica di nome, indirizzo e città in più di un record. È ad esempio possibile che siano presenti due contatti di nome Marco Tanara che vivono entrambi in Corso Venerdì 2345, ma non possono vivere entrambi a Bologna.

Inizio della sezione

Inizio pagina

Trovare e modificare, nascondere o eliminare i dati duplicati di più tabelle

Le informazioni delle sezioni seguenti illustrano alcuni modi disponibili per trovare e quindi modificare, nascondere o eliminare record duplicati esistenti in più tabelle. In genere, i dati di due o più tabelle si sovrappongono quando si prova a integrare un database con un altro.

Se esistono duplicati in due tabelle, visualizzarli uno accanto all'altro

Se esistono duplicati in due tabelle, visualizzare un solo record

Visualizzare solo i record duplicati trovati in entrambe le tabelle

Visualizzare solo i record di una tabella senza un record corrispondente in un'altra tabella

Eliminare i record duplicati di una tabella e unire i record rimanenti nell'altra tabella

Visualizzare solo i record distinti quando si guardano i dati di tabelle correlate

Visualizzare un record specifico o riepilogare i dati duplicati in tabelle correlate

Se esistono duplicati in due tabelle, visualizzarli uno accanto all'altro

Spesso può capitare che due tabelle contengano dati duplicati o sovrapposti nello stesso database. Si supponga ad esempio di avere una tabella Committenti e una tabella Clienti:

Tabella Committenti    

Nome

Indirizzo

Città

Tel.

Fax

Baldwin Museum of Science

Piazza Martedì 28

Milano

45 67 89 01

45 67 89 01

Blue Yonder Airlines

Via Giovedì 47

Bologna

12 12 34 56

104

Coho Winery

Via Mercoledì 15

Firenze

12 23 45 67

12 34 56 78

Contoso Pharmaceuticals

Corso Venerdì 68

Bologna

12 34 56 78

12 45 67 89

Fourth Coffee

Via Domenica 25

Modena

12 45 67 89

12 45 67 98

Consolidated Messenger

Via Mercoledì 8

Firenze

12 34 56 78

23 67 89 01

Graphic Design Institute

Piazza Venerdì 72

Parma

67 89 01 23

67 89 01 23

Litware S.p.A.

Viale Lunedì 3

Piacenza

12 12 34 56

34 56 78 90

Tailspin Toys

Viale Lunedì 4

Piacenza

12 12 34 56

34 89 01 23

Tabella Clienti    

Nome società

Nome contatto

Indirizzo

Città

CAP

Telefono

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

Adventure Works

Daniela Guaita

Corso Mercoledì 3122

Milano

34567

12 34 56 78

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

Fabrikam, Inc.

Fernando Caro

Piazza Giovedì 9

Milano

56789

23 78 91 12

Si noti che in questo caso le singole tabelle non contengono valori duplicati, ma i campi di entrambe contengono alcuni valori sovrapposti, ad esempio i dati del campo Nome nella tabella Committenti e i dati del campo Nome società della tabella Clienti.

Non è sempre possibile integrare i dati di ogni tabella unendo le due tabelle. Per alcuni clienti, la tabella Committenti potrebbe avere le informazioni più recenti, mentre per altri la tabella Clienti potrebbe avere i dati più aggiornati . In genere, è consigliabile rivedere i contenuti di entrambe le tabelle e quindi decidere quale tenere e quale eliminare.

Per raggruppare i dati di entrambe le tabelle, creare una query di unione. La query di unione inserisce i record duplicati uno vicino all'altro per semplificarne l'analisi.

Nota : Non è possibile modificare o eliminare i dati restituiti da una query di unione. Per modificare o eliminare dati, aprire le tabelle sottostanti in visualizzazione Foglio dati.

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

    immagine della barra multifunzione di access

    Access crea una nuova query. Viene visualizzata la finestra di dialogo Mostra tabella.

  2. Chiudere la finestra di dialogo Mostra tabella senza aggiungere alla griglia di struttura alcuna tabella o query.

  3. Fare clic con il pulsante destro del mouse sulla scheda documento per la query e quindi scegliere Visualizzazione SQL.

  4. Se sono state usate le tabelle precedenti come esempio, incollare l'istruzione SQL seguente nella finestra. Se si usano dati personalizzati, usare l'istruzione seguente come guida. Usare le clausole SELECT, UNION ALL SELECT e ORDER BY come indicato, ma sostituire i nomi di campi e tabelle con quelli dei propri dati.

    SELECT [Nome società], [Indirizzo], [Città], [Telefono], FROM [Clienti]
    UNION ALL SELECT [Nome], [Indirizzo], [Città], [Tel.], FROM [Committenti]
    ORDER BY [Nome società];

    La prima istruzione SELECT recupera i record della tabella Clienti, mentre la seconda quelli della tabella Committenti. La clausola UNION ALL raggruppa tutti i dati delle due tabelle. L'istruzione ORDER BY ordina i record in modo che quelli duplicati vengano raggruppati per semplificarne l'analisi.

    Nota : Ogni istruzione SELECT deve restituire lo stesso numero di campi e nello stesso ordine. I campi corrispondenti devono avere tipi di dati compatibili, ma con l'eccezione che è possibile usare un campo numerico e un campo di testo come campi corrispondenti. Tenere inoltre presente che i nomi dei campi possono essere diversi.

  5. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati.

    Se si usano i record delle tabelle precedenti, la visualizzazione contiene 18 record, ossia tutti e 9 i record della tabella Clienti e tutti e 9 i record della tabella Committenti.

    Salvare la query e quindi chiudere la visualizzazione. Questa query verrà usata nella sezione successiva.

Inizio della sezione

Se esistono duplicati in due tabelle, visualizzare un solo record

A volte può essere necessario visualizzare solo i record distinti di due tabelle simili. Se un record esiste in entrambe le tabelle, è possibile includere quello della prima tabella e ignorare quello corrispondente dell'altra.

Access considera i dati di tabelle diverse come duplicati solo se i valori di tutti i campi selezionati corrispondono. Se ad esempio si includono i campi Nome società, Città, Indirizzo, Tel. e Fax nella query, i valori di tutti e cinque i campi devono corrispondere affinché Access consideri il record come duplicato.

I passaggi di questa sezione spiegano come modificare la query della sezione precedente per visualizzare tutti i record della tabella Clienti e solo i record univoci della tabella Committenti.

Nota : Non è possibile modificare i dati restituiti da una query di unione. Per modificare o eliminare dati, aprire le tabelle sottostanti in visualizzazione Foglio dati.

Modificare la query

  1. Aprire la query creata nella sezione precedente.

  2. Nella scheda Documento della query fare clic su Visualizzazione SQL per vedere l'istruzione SQL.

  3. Eliminare i campi [Telefono] e [Tel.] da entrambe le istruzioni SELECT.

  4. Eliminare la parola ALL che segue UNION. In questo modo la query ignora i record duplicati della tabella Committenti. L'istruzione SQL sarà simile alla seguente.

    SELECT [Nome società], [Indirizzo], [Città], FROM [Clienti]
    UNION SELECT [Nome], [ Indirizzo], [Città], FROM [Committenti]
    ORDER BY [Nome società];

  5. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati.

    Se si usano i dati di esempio della sezione precedente, la query restituisce 14 record invece di 18.

Inizio della sezione

Visualizzare solo i record duplicati trovati in entrambe le tabelle

Se è necessario eseguire una query solo per trovare i valori corrispondenti di due tabelle, usare un inner join. Se si è poco pratici di Access, un inner join è un'operazione che collega le righe di due o più tabelle solo se i valori dei campi collegati corrispondono.

Per creare un inner join, generare una query di selezione che include entrambe le tabelle e quindi stabilire una relazione tra i campi contenenti i valori duplicati. Per impostazione predefinita, Access crea un inner join quando si stabilisce la relazione.

Nota : Non è possibile modificare i campi o le righe restituite da una query di selezione contenente un inner join. Se si vogliono modificare i dati, aprire le tabelle sottostanti e cambiare i valori in ognuna di esse.

Creare una query contenente un inner join

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

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella Clienti e sulla tabella Committenti, quindi fare clic su Chiudi per chiudere la finestra di dialogo.

  3. Identificare i campi che contengono valori corrispondenti nei record duplicati. Se si usano le tabelle di esempio, il campo Nome società della tabella Clienti corrisponde al campo Nome della tabella Committenti.

  4. Trascinare il campo Nome società della prima tabella nel campo Nome della seconda. Access collega i campi con una linea.

    linea tra le tabelle che indica che le tabelle clienti e acquirenti sono correlate, in base ai nomi dei clienti

    Per impostazione predefinita, la query crea un inner join tra le due tabelle. Un inner join seleziona solo i record in cui il campo Nome società corrisponde al campo Nome.

  5. Fare doppio clic sul campo Nome società per aggiungerlo alla griglia di struttura della query. Questo campo consente di identificare i record nella visualizzazione Foglio dati.

  6. Fare doppio clic sugli altri campi delle tabelle Clienti e Committenti per aggiungerli alla griglia di struttura della query. In questo caso, aggiungere il campo Tel. della tabella Clienti e il campo Telefono della tabella Committenti.

  7. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati. La query restituisce cinque record, uno per ogni cliente con un record in entrambe le tabelle.

Nome società

Telefono (Clienti)

Tel. (Committenti)

Baldwin Museum of Science

45 67 89 01

45 67 89 01

Blue Yonder Airlines

12 12 34 56

104

Coho Winery

12 23 45 67

12 23 45 67

Contoso Pharmaceuticals

12 34 56 78

12 34 56 78

Fourth Coffee

12 45 67 89

12 45 67 89

Inizio della sezione

Visualizzare solo i record di una tabella senza un record corrispondente in un'altra tabella

Continuando con lo scenario in cui le tabelle Clienti e Committenti hanno dati duplicati, verrà ora illustrato come fare per visualizzare i record della tabella Clienti che non hanno un record duplicato nella tabella Committenti. Questa funzione può essere utile per prendere decisioni per determinati clienti in base al contenuto della sola tabella Clienti, prima di intervenire per consolidare le due tabelle.

Per visualizzare solo i record della tabella Clienti che non hanno una corrispondenza nella tabella Committenti, creare una query di ricerca dati non corrispondenti. Con i dati di esempio, questa query recupera tutti i record della tabella Clienti che non hanno una corrispondenza nella tabella Committenti.

Nota : Con questa query aperta in visualizzazione Foglio dati, è possibile modificare i valori o eliminare i record.

Creare una query di ricerca dati non corrispondenti

  1. Nel gruppo Altro della scheda Crea fare clic su Creazione guidata Query.

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Nuova query fare clic su Creazione guidata Query ricerca dati non corrispondenti e quindi su OK.

  3. Fare clic sulla tabella Clienti, che contiene i record a cui si è interessati. Fare clic su Avanti.

  4. Fare clic sulla tabella Committenti, che è quella che si vuole confrontare alla tabella Clienti. Fare clic su Avanti.

  5. Fare clic sul campo Nome società nella tabella Clienti, fare clic sul campo Nome nella tabella Committenti e quindi fare clic sul pulsante <=>. Le tabelle verranno collegate in base ai nomi dei clienti. Fare clic su Avanti.

  6. Selezionare i campi da includere nella visualizzazione. In questo caso, aggiungere i campi Nome società, Indirizzo, Città e Tel. Fare clic su Avanti.

  7. Digitare un nome per la query e fare clic su Fine per aprire i record in visualizzazione Foglio dati. Se si usano le tabelle di esempio, la query restituisce quattro record, ossia in questo caso i record della tabella Clienti che non hanno un record sovrapposto nella tabella Committenti.

Nome società

Indirizzo

Città

Telefono

Adventure Works

Corso Mercoledì 3122

Milano

12 34 56 78

Humongous Insurance

Piazza Venerdì 72

Parma

67 89 01 23

Trey Research

Via Martedì 58

Piacenza

12 12 34 56

Fabrikam, Inc.

Piazza Giovedì 9

Milano

23 78 91 12

Inizio della sezione

Eliminare i record duplicati di una tabella e unire i record rimanenti nell'altra tabella

Dopo aver esaminato i dati duplicati in tabelle simili, è possibile eliminare i record duplicati e unire quelli rimanenti in una singola tabella. Questo processo prevede i passaggi generali seguenti:

  • Facoltativamente, nella tabella da eliminare aggiornare i dati da unire. La procedura per aggiornare i dati esula dall'ambito di questo argomento.

    Per informazioni su come aggiornare i dati, vedere l'articolo Aggiornare i dati in un database.

  • Facoltativamente, esaminare le eventuali relazioni esistenti tra la tabella da eliminare e altre tabelle del database. Se esiste una relazione, in genere viene eliminata e quindi ne viene stabilita una nuova con l'altra tabella, ossia quella che contiene i dati uniti. Tuttavia, è necessario assicurarsi che i valori di chiave primaria della nuova tabella corrispondano ai valori di chiave primaria delle altre.

  • Creare una query di eliminazione che usa la proprietà Valori univoci per trovare ed eliminare eventuali record corrispondenti. In questo caso, è necessario assicurarsi di non interrompere le relazioni tra tabelle nel database. Si supponga ad esempio di voler spostare i record univoci dalla tabella Committenti nella tabella Clienti per poi eliminare la tabella Committenti. Se la tabella Committenti è correlata ad altre tabelle del database, è necessario adottare misure per assicurarsi che la tabella Clienti assuma queste relazioni. Una spiegazione completa delle relazioni esula dall'ambito di questo argomento.

    Per altre informazioni, vedere l'articolo Creare, modificare o eliminare una relazione.

  • Creare una query di accodamento per aggiungere i record rimanenti della tabella da eliminare in quella da mantenere. In questo contesto, può essere necessario aggiungere il campo di chiave primaria e i valori dei dati accodati alla tabella da mantenere.

  • Eliminare la tabella indesiderata.

I passaggi di questa sezione spiegano come creare e usare una query di eliminazione e una query di accodamento e come eliminare una tabella. Vengono usate le tabelle Clienti e Committenti.

Tabella Clienti    

Nome società

Nome contatto

Indirizzo

Città

CAP

Telefono

Baldwin Museum of Science

Davide Ruspini

Piazza Martedì 28

Milano

12345

45 67 89 01

Blue Yonder Airlines

Agostino Martino

Via Giovedì 47

Bologna

23456

12 12 34 56

Coho Winery

Guido Pica

Via Mercoledì 15

Firenze

34567

12 23 45 67

Contoso Pharmaceuticals

Marco Tanara

Corso Venerdì 68

Bologna

NS1 EW2

12 34 56 78

Fourth Coffee

Massimiliano Monaco

Via Domenica 25

Modena

56789

12 45 67 89

Adventure Works

Daniela Guaita

Corso Mercoledì 3122

Milano

34567

12 34 56 78

Humongous Insurance

Davide Garghentini

Piazza Venerdì 72

Parma

01234

67 89 01 23

Trey Research

Adriana Giorgi

Via Martedì 58

Piacenza

43210

12 12 34 56

Fabrikam, Inc.

Fernando Caro

Piazza Giovedì 9

Milano

56789

23 78 91 12

Tabella Committenti    

Nome

Indirizzo

Città

Tel.

Fax

Baldwin Museum of Science

Piazza Martedì 28

Milano

45 67 89 01

45 67 89 01

Blue Yonder Airlines

Via Giovedì 47

Bologna

12 12 34 56

104

Coho Winery

Via Mercoledì 15

Firenze

12 23 45 67

12 34 56 78

Contoso Pharmaceuticals

Corso Venerdì 68

Bologna

12 34 56 78

12 45 67 89

Fourth Coffee

Via Domenica 25

Modena

12 45 67 89

12 45 67 98

Consolidated Messenger

Via Mercoledì 8

Milano

12 34 56 78

12 34 56 79

Graphic Design Institute

Piazza Venerdì 72

Parma

67 89 01 23

67 89 01 23

Litware S.p.A.

Viale Lunedì 3

Piacenza

34 34 56 78

34 45 67 89

Tailspin Toys

Viale Lunedì 4

Piacenza

12 12 34 56

34 89 01 23

Se si vogliono usare queste tabelle in un database, vedere Preparare alcuni dati di esempio più indietro in questo articolo. Per questa esercitazione, si supponga che la tabella Clienti contenga le informazioni più recenti e che quindi si vogliano eliminare i record corrispondenti della tabella Committenti e poi unire i record rimanenti di questa tabella nella tabella Clienti.

Eliminare i dati indesiderati

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

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella Clienti e sulla tabella Committenti, quindi chiudere la finestra di dialogo.

  3. Collegare le due tabelle trascinando il campo Nome società della tabella Clienti nel campo Nome della tabella Committenti.

  4. Fare clic con il pulsante destro del mouse nell'area vuota nella metà superiore della finestra e quindi scegliere Proprietà. Impostare il valore della proprietà Record univoci su .

    Collegando le due tabelle e impostando la proprietà Record univoci della query su , si evita di visualizzare un messaggio analogo a Non è stato possibile eliminare dati dalle tabelle specificate che verrebbe altrimenti visualizzato quando si esegue la query.

  5. Nel gruppo Tipo di query della scheda Progettazione fare clic su Elimina.

  6. Trascinare l'asterisco (*) dalla tabella Committenti alla riga Campo della prima colonna nella griglia di struttura della query.

    L'asterisco (*) nell'elenco Campo rappresenta tutti i campi della tabella

    Nella riga Tabella verrà visualizzato Committenti e nella riga Elimina verrà visualizzato Da. Questo significa che la query eliminerà le righe dalla tabella Committenti.

  7. È ora necessario specificare quali record eliminare con la query. Se si usano tabelle semplici, è possibile eliminare i record in cui i valori dei campi Nome, Indirizzo e Città della tabella Committenti corrispondono ai campi analoghi della tabella Clienti.

    Trascinare i campo Nome dalla tabella Committenti alla riga Campo nella griglia di struttura della query. Eseguire la stessa operazione con i campi Indirizzo e Città della tabella Committenti.

  8. Se si usano le tabelle di esempio, nella riga Criteri del campo Nome digitare [Clienti].[NomeSocietà]. Nella riga Criteri del campo Indirizzo digitare [Clienti].[Indirizzo]. Nella riga Criteri del campo Città digitare [Clienti].[Città]. La griglia di struttura della query dovrebbe avere questo aspetto:

    Campi e criteri che determinano i record duplicati

    Quando viene eseguita, la query elimina tutti i record che corrispondono ai criteri, ossia quelli che hanno valori corrispondenti nei tre campi di ogni tabella.

  9. Fare clic su Visualizza Icona del pulsante per visualizzare un'anteprima dei record che verranno eliminati con l'esecuzione della query, in questo caso i cinque record duplicati della tabella Committenti.

  10. Fare clic su Esegui Icona del pulsante per eseguire la query. Quando viene chiesto di confermare l'eliminazione, fare clic su .

  11. Procedere con i passaggi successivi per creare una query di accodamento.

Accodare i dati rimanenti

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

    immagine della barra multifunzione di access

  2. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella di origine, fare doppio clic sulla tabella che contiene i dati da accodare e quindi fare clic su Chiudi. Se si usano i dati di esempio, fare clic sulla tabella Committenti.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Accodamento.

  4. Nella finestra di dialogo Accodamento selezionare la tabella di destinazione, ossia quella in cui accodare i dati, nell'elenco Nome tabella. Se si usano le tabelle di esempio, selezionare la tabella Clienti e quindi fare clic su Avanti.

  5. Spostare i campi da accodare dalla tabella di origine alla riga Campo della griglia di struttura.

    Importante : Spostare solo i campi che hanno un campo corrispondente nella tabella di destinazione.

    Se si usano i dati di esempio, spostare i campi Nome, Indirizzo e Tel.

  6. Fare clic sulla riga Accoda a di ogni campo e selezionare il nome del campo corrispondente nella tabella di destinazione. Se si usano i dati di esempio, selezionare rispettivamente i campi Nome società, Indirizzo e telefono.

  7. Poiché si vogliono aggiungere tutti i record della tabella Committenti alla tabella Clienti, non è necessario specificare criteri. Fare clic su Visualizza Icona del pulsante per visualizzare un'anteprima dei record che verranno aggiunti alla tabella Clienti con l'esecuzione della query.

  8. Salvare e chiudere la visualizzazione.

  9. Individuare e fare doppio clic sulla query di accodamento. Fare clic su per confermare l'operazione di accodamento.

    Come evitare di visualizzare messaggi di conferma ogni volta che si esegue la query

    • Fare clic sul pulsante Microsoft Office icona del pulsante , quindi su Opzioni di Access.

    • Nella finestra di dialogo Opzioni di Access fare clic su Modifica.

    • Nella sezione Modifica, in Conferma, deselezionare la casella di controllo Query di comando.

Eliminare la tabella

  1. Assicurarsi di avere le autorizzazioni necessarie per eliminare le tabelle dal database, che il database non sia di sola lettura e che un altro utente non abbia la tabella aperta.

  2. Nel riquadro di spostamento fare clic sulla tabella da eliminare.

  3. Premere CANC e quindi fare clic su per confermare che si vuole eliminare la tabella.

    Nota : L'eliminazione di tabelle del database può interrompere, interamente o in parte, le funzionalità del database. Per questo motivo, pianificare un'eliminazione in modo da assicurarsi che il database rimanga funzionale. Inoltre è sempre consigliabile eseguire un backup prima di eliminare dati o altri componenti del database.

    Per altre informazioni sull'eliminazione dei dati, vedere l'articolo Eliminare uno o più record da un database.

Inizio della sezione

Visualizzare solo i record distinti quando si guardano i dati di tabelle correlate

Una query che raggruppa i dati di due tabelle correlate potrebbe visualizzare record in cui tutti i campi sembrano corrispondere. Se tuttavia si esaminano le tabelle, si potrebbe scoprire che in realtà non contengono record duplicati. Questo problema si verifica quando la query non include determinati campi, ad esempio una chiave primaria, che possano identificare in modo univoco ogni record. In questi scenari, invece di eliminare i record si può scegliere di nascondere i dati che sembrano duplicati.

Si supponga ad esempio di usare una query per raccogliere i dati dei clienti da due tabelle e di volersi assicurare che gli ordini vengano evasi nei tempi previsti. I clienti possono effettuare un ordine di più prodotti, quindi ogni prodotto diventa un record distinto (riga) nelle tabelle sottostanti. Poiché l'ordine viene effettuato in un unico giorno e quindi spedito in un unico giorno, i record di un determinato ordine possono contenere un numero elevato di date duplicate, come illustrato qui:

Campi con valori univoci rimossi dalla query Completamento ordine

Dato che si sa che gli ordini arrivano in un determinato giorno e che le spedizioni vengono effettuate in un determinato giorno, è necessario vedere un unico record, ossia un'unica riga, per ogni ordine. Per visualizzare record univoci delle tabelle che contengono i dati degli ordini, è possibile impostare la proprietà Record univoci della query su . Se la proprietà è impostata su , la query esamina tutte le righe della tabella e, se trova righe corrispondenti (non solo campi), le esclude tutte tranne una di quelle duplicate dal set di risultati.

Impostare il valore della proprietà Record univoci su Sì

  1. Con la query aperta in visualizzazione Struttura, premere F4 per visualizzare la finestra delle proprietà.

  2. Nella finestra delle proprietà impostare la proprietà Record univoci su e quindi chiudere la finestra.

    visualizzazione della finestra delle proprietà della query

Mentre si procede, tenere presente che quando la proprietà Record univoci è impostata su , la query confronta intere righe e, affinché escluda i dati, è necessario che le righe di tutte le tabelle coinvolte corrispondano. È inoltre possibile usare l'impostazione della proprietà Record univoci solo quando una query include due o più tabelle.

Quando si passa in visualizzazione Foglio dati, si vedrà un solo record per ogni ordine.

un record per ordine della tabella ordini

Tenere anche presente che quando si imposta la proprietà Record univoci su e si esegue la query, si potrebbero ancora vedere record che sembrano duplicati. Per continuare con l'esempio precedente, si potrebbero ancora trovare record con ordine e data di spedizione corrispondenti, come indicato qui:


La vista include ancora record duplicati

Questa situazione si verifica se si ricevono due ordini diversi nello stesso giorno e quindi vengono spediti nello stesso giorno. Se si imposta la proprietà Record univoci su , questi record non vengono nascosti dai risultati della query perché non si tratta in realtà di duplicati nelle tabelle sottostanti.

Se si vuole vedere una sola istanza di questi record, ossia un unico record al giorno, è necessario impostare la proprietà Valori univoci della query su . Se la proprietà Valori univoci è impostata su , la query non cerca duplicati nelle tabelle sottostanti. Esamina invece i valori dei campi inclusi e se tutti i campi corrispondono per due record, nasconde un record dalla visualizzazione.

La proprietà Valori univoci si imposta allo stesso modo della proprietà Record univoci, ossia visualizzando la finestra delle proprietà della query e cambiando l'impostazione in . Nella finestra delle proprietà la casella della proprietà Valori univoci si trova sopra la casella Record univoci.

Proprietà Valori univoci impostata su Sì

Per continuare con l'esempio precedente, ora si vedranno solo le date in cui sono stati ricevuti o spediti uno o più ordini, mentre non si vedrà un unico record per ordine.


Date di ricezione e spedizione degli ordini

Nota : Poiché l'impostazione della proprietà Record univoci su viene applicata alle righe delle tabelle che forniscono i dati alla query, mentre l'impostazione della proprietà Valori univoci su viene applicata ai campi della query, non è possibile usare contemporaneamente entrambe le proprietà. Se se ne imposta una su , Access imposta automaticamente l'altra su No. Tuttavia, è possibile impostare entrambe su No per restituire tutti i record.

La tabella seguente contiene un riepilogo utile per la scelta delle impostazioni delle proprietà Record univoci e Valori univoci di una query.

Se la query è basata su...

E si vuole ottenere...

Impostare...

Risultato

Due o più tabelle, ma tutti i campi della query provengono da una singola tabella

Record distinti della tabella, ossia tutti i campi della tabella devono corrispondere affinché due record vengano considerati duplicati

Record univoci su . Access imposta automaticamente Valori univoci su No.

Se la tabella contiene record duplicati, la query li ignora. Tuttavia, i risultati della query potrebbero comunque includere record in cui tutti i campi corrispondono, se la query non include un campo che identifica in modo univoco i record.

Una o più tabelle

Record distinti in visualizzazione Foglio dati della query, ossia tutti i campi in visualizzazione Foglio dati devono corrispondere affinché due record vengano considerati duplicati

Valori univoci su . Access imposta automaticamente Record univoci su No.

La query esclude i record duplicati (in cui tutti i campi corrispondono) in visualizzazione Foglio dati. Tenere presente, tuttavia, che potrebbero non essere visualizzati tutti i record distinti della tabella sottostante.

Una o più tabelle

Tutti i record

Valori univoci su No e Record univoci su No.

Verranno visualizzati tutti i record univoci e duplicati di entrambe le tabelle.

Inizio della sezione

Visualizzare un record specifico o riepilogare i dati duplicati in tabelle correlate

Quando si visualizzano i dati duplicati in tabelle correlate, si può scegliere di vedere un record specifico tra il set di duplicati oppure di riepilogare i dati duplicati usando le funzioni Conteggio, Somma o un'altra funzione di aggregazione.

Analogamente allo scenario descritto nella sezione precedente, è possibile che in realtà non ci siano dati duplicati nelle tabelle, ma quando si visualizzano i dati di due tabelle che condividono una relazione uno-a-molti, ad esempio le tabelle Ordini e Dettagli ordine, si potrebbero trovare diversi record con più campi corrispondenti. Un dipendente potrebbe ad esempio aver ricevuto più ordini dallo stesso cliente oppure potrebbe aver venduto lo stesso prodotto come parte di ordini diversi nello stesso giorno e così via. Se si vogliono trovare i dati per rispondere a query come le seguenti, è necessario riepilogare i dati invece di eliminare quelli duplicati.

  • Trovare la quantità totale di ogni prodotto venduto da ogni dipendente.

  • Calcolare il numero totale di ordini che ogni dipendente ha gestito per ogni cliente.

  • Trovare l'ordine del giorno più consistente per ogni dipendente.

Per riepilogare i dati, usare una query di totalizzazione simile a quelle descritte nella sezione Visualizzare record distinti specificando quali duplicati includere nei risultati più indietro in questo articolo. Questa sezione spiega come usare una query di totalizzazione con una singola tabella. Per creare una query di totalizzazione che contiene più tabelle, procedere come segue:

  • Ricordarsi di aggiungere la seconda tabella quando si aggiunge la prima nella finestra di dialogo Mostra tabella.

  • Quando si aggiungono i campi che determinano la duplicazione, trascinare quelli desiderati da una delle due tabelle e, per tutti i campi, impostare li valore della riga Totale della colonna su Raggruppa per.

  • Il campo che identifica il record che si vuole visualizzare o che include i valori da riepilogare può provenire da una delle due tabelle.

Inizio della sezione

Inizio pagina

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Queste informazioni sono risultate utili?

Ottimo! Altri commenti?

Cosa possiamo migliorare?

Grazie per i tuoi commenti e suggerimenti

×