Trovare, nascondere o eliminare i dati duplicati

In questo articolo viene descritto come trovare e nascondere o eliminare i dati duplicati tramite Microsoft Office Access 2007. In generale, è consigliabile eliminare i valori duplicati tutte le volte che ciò è possibile, per ridurre i costi e migliorare 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

Uno dei motivi principali alla base dell'utilizzo di un database relazionale 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 denaro destinato all'archiviazione e di garantire una maggiore accuratezza dei dati. L'accuratezza, a sua volta, può contribuire a prendere decisioni aziendali migliori. Se, ad esempio, si immette un ordine di vendita più di una volta, il cliente potrebbe ricevere merce non necessaria e la ridondanza può comportare una perdita di denaro legata a un aumento dei costi di spedizione e di contabilità.

Significato di duplicazione

Prima di intraprendere un'azione per identificare ed eliminare i record duplicati, ricordarsi che è necessario fare affidamento sulla propria conoscenza dei dati. A differenza del processo di progettazione di un database, non è possibile seguire un insieme di regole o procedure specifiche per trovare ed eliminare i record duplicati in modo accurato. Man mano che si procede, ricordarsi 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 non si includono nella query campi che identificano in modo univoco ogni record. Per ulteriori informazioni su come includere in una query i campi necessari per evitare i falsi duplicati, vedere la sezione Comprendere quando i record non sono duplicati, più avanti in questo articolo.

È inoltre necessario ricordare che non è possibile eliminare tutti i dati duplicati, in quanto per il corretto funzionamento del database è necessario un certo livello di duplicazione. In altre parole, i database contengono sia ridondanze necessarie che non necessarie e si devono eliminare solo quelle non necessarie.

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

Il secondo tipo di ridondanza necessaria si presenta quando si utilizza il database. È ad esempio possibile immettere il nome di una città, di un fornitore o un nome comune a più persone, ad esempio Davide Ruspini, più volte. In questo caso, non si corre il rischio di duplicare i dati in quanto altri campi del database, ad esempio valori di chiave primaria, indirizzi e codici postali, contengono informazioni univoche sufficienti per non far sembrare i record duplicati.

Le ridondanze non necessarie possono verificarsi in molti 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 a Ezio Alboni.

Record duplicati per un cliente nella tabella Clienti

Anche se a ogni record è associato un ID cliente univoco, rappresentato dal valore nella colonna più a sinistra, i valori dei campi Nome, Indirizzo e Città corrispondono. In questo caso, una corrispondenza parziale può portare a utilizzare la conoscenza della propria azienda per analizzare i record e stabilire se si tratta di duplicati.

  • Due o più tabelle possono contenere dati simili.    Una tabella Clienti e una tabella Acquirenti 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 unire i valori univoci, ovvero non duplicati, in un'unica tabella ed eliminare la tabella aggiuntiva.

  • Due o più database possono contenere dati simili.    Se si ritiene che due o più database contengano 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.

Visitare la sezione relativa alla gestione dei database del Catalogo servizi Microsoft Office per verificare gli strumenti di gestione di database attualmente disponibili.

 Nota   Se si eseguono i passaggi per eliminare i dati dalle tabelle e nella maschera o nel report sono presenti ancora dati duplicati, 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 controllo.

Per ulteriori informazioni sulla struttura dei report, vedere l'articolo Modificare un report.

Comprendere quando i record non sono duplicati

In alcune situazioni, ad esempio quando si osservano i dati restituiti da una query, alcuni report potrebbero apparire duplicati anche se le tabelle sottostanti sembrano contenere solo record univoci. I problemi di questo tipo possono verificarsi quando la vista non include i campi che identificano un record in modo univoco. In questa figura vengono ad esempio illustrati i dati restituiti da una query.

Una vista che non include un campo che potrebbe identificare in modo univoco i record

In questa vista parecchi record sembrano duplicati. Se si aggiungono alla query uno o più campi ulteriori, ad esempio i nomi dei clienti o i campi chiave primaria per ogni ordine (ID ordine), è possibile vedere come ogni record sia in effetti univoco, come illustrato nella figura seguente:

La vista include ora il campo ID ordine che consente di eliminare i record duplicati

In genere, quando si crea una query, è consigliabile includere il campo o i campi che identificano ogni record in modo univoco. Questa funzionalità è solitamente offerta dal campo chiave primaria, ma è anche possibile utilizzare combinazioni di altri campi. Potrebbero, ad esempio, essere presenti numerose istanze di un nome contatto comune e numerose istanze di un nome di città, ma se si includono un numero di telefono e un indirizzo la combinazione di dati rende univoco ogni record.

Fattori da considerare quando si gestiscono i duplicati

Le modalità di gestione dei record duplicati dipendono da diversi fattori:

  • Tipo e grado di duplicazione    È necessario valutare se i dati duplicati sono presenti in un'unica tabella o in due tabelle simili, nello stesso database o in due database diversi oppure se i record duplicati sono presenti in una vista basata su due o più tabelle correlate.
  • Requisiti specifici    È necessario stabilire l'azione che si desidera intraprendere relativamente ai dati duplicati, ovvero se si desidera eliminare i record dal database o solo nasconderli oppure se si desidera contare, calcolare la media o sommare i valori dei record duplicati. Stabilire inoltre se è importante definire quali record duplicati vengono eliminati o nascosti e, in caso affermativo, se si desidera analizzare ed eliminare manualmente i record oppure eliminarli in base a una condizione. Decidere infine se si desidera anche aggiornare o consolidare uno o più record prima di iniziare a eliminarli.

Tutti questi fattori, insieme alla conoscenza dei dati, consentono di creare una pianificazione per la gestione dei dati ridondanti.

Preparazione generale alla rimozione di duplicati

Se si decide di eliminare i record duplicati, è innanzitutto necessario occuparsi di eventuali relazioni tra tabelle esistenti. In genere, nella maggior parte dei database vengono utilizzate relazioni uno-a-molti. Potrebbe, ad esempio, essere presente una piccola quantità di clienti, ma ogni cliente potrebbe effettuare molti ordini. Di conseguenza, la tabella dei dati dei clienti si troverebbe sul lato "uno" e i dati degli ordini si troverebbero sul lato "molti" della relazione.

Man mano che si procede, tenere presente che se i dati che si desidera eliminare si trovano sul lato "molti" di una relazione, è possibile eliminarli senza eseguire ulteriori operazioni, mentre se si trovano sul lato "uno", è necessario impostare una proprietà nella relazione, affinché l'eliminazione non venga bloccata da Access.

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

Prima di iniziare l'eliminazione dei dati ridondanti, valutare l'utilizzo di una o più delle modalità seguenti di preparazione del database:

  • Verificare che il database non sia di sola lettura.
  • Verificare di disporre delle 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 desidera lavorare, per evitare violazioni di condivisione.

 Suggerimento   Se al database si connettono molti utenti, potrebbe essere necessario chiuderlo e aprirlo di nuovo in modalità esclusiva. A tale scopo, fare clic sul pulsante Microsoft OfficeIcona del pulsante in 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 modalità esclusiva

  • 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 OfficeIcona del pulsante, quindi sulla freccia accanto a Gestisci e infine su Backup database.

Verrà visualizzata la finestra di dialogo Salva con nome e la data corrente verrà accodata al nome file. Se, ad esempio, si dispone di un database denominato Beni, in Access verrà creato il nome file Beni_2006-10-29.

  1. Accettare il nome e il percorso predefiniti oppure selezionare un nome o un percorso diverso e quindi fare clic su Salva.

Il file originale verrà chiuso, ne verrà creata una copia di backup e quindi il file originale verrà riaperto.

Per tornare alla copia di backup, chiudere e rinominare il file originale, in modo che per la copia di backup sia possibile utilizzare il nome della versione originale. Assegnare il nome della versione originale alla copia di backup e quindi aprirla in Access.

Torna all'inizio Torna all'inizio

Preparare alcuni dati di esempio

Nelle sezioni pratiche di questo articolo sono disponibili tabelle di dati di esempio che vengono utilizzate nelle procedure per illustrare il funzionamento delle query. Se si preferisce, le tabelle di esempio possono essere immesse o importate in un database nuovo o esistente.

In Access è possibile aggiungere queste tabelle di esempio a un database in diversi modi. È possibile immettere i dati manualmente, copiare ogni tabella in un programma per fogli 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, ad esempio Blocco note, e quindi importare i dati dai file di testo risultanti.

Nelle procedure di questa sezione viene illustrato 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 ulteriori informazioni sulla creazione e importazione di dati di testo, vedere l'articolo Importare o collegare dati di un file di testo.

Nelle procedure pratiche di questo articolo vengono utilizzate le tabelle seguenti:

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 23 45 67 89
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12
Coho Winery Daniela Guaita Via Mercoledì 8 Firenze 34567 23 56 78 90
Humongous Insurance Davide Garghentini Piazza Venerdì 72 Parma 01234 67 89 01 23
Trey Research Adriana Giorgi Via Martedì 58 Piacenza 43210 34 67 89 01
Fourth Coffee Giorgio Cavaglieri Via Domenica 25 Modena 56789 56 90 12 34

Tabella Dipendenti:

Cognome Nome Indirizzo Città Data di nascita Data di assunzione
Ruspini Davide Piazza Martedì 28 Milano 05-feb-1968 10-giu-1994
Martino Agostino Via Giovedì 47 Bologna 22-mag-1957 22-nov-1996
Pica Guido Via Mercoledì 15 Firenze 11-nov-1960 11-mar-2000
Tanara Marco Corso Venerdì 68 Bologna 22-mar-1964 22-giu-1998
Monaco Massimiliano Via Domenica 25 Modena 05-giu-1972 05-gen-2002
Guaita Daniela Via Mercoledì 8 Firenze 23-gen-1970 23-apr-1999
Garghentini Davide Piazza Venerdì 72 Parma 14-apr-1964 14-ott-2004
Giorgi Adriana Via Martedì 58 Piacenza 29-ott-1959 29-mar-1997
Tanara Marco Corso Venerdì 68 Bologna 22-mar-1964 20-giu-1998

Tabella Importo dovuto:

Nome società Nome contatto Indirizzo Città CAP Telefono 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 23 45 67 89 € 321,79
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78 € 457,68
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12 € 98,75
Coho Winery Daniela Guaita Via Mercoledì 8 Firenze 34567 23 56 78 90 € 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 34 67 89 01 € 509,09
Fourth Coffee Giorgio Cavaglieri Via Domenica 25 Modena 56789 56 90 12 34 € 98,75

Tabella Clienti:

Nome Indirizzo Città Telefono 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 23 45 67 89 23 45 67 89
Contoso S.p.A. Corso Venerdì 68 Bologna 12 34 56 78 12 34 56 78
Fourth Coffee Via Domenica 25 Modena 56 78 90 12 56 78 90 12
Consolidated Messenger Via Mercoledì 8 Firenze 23 56 78 90 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 34 67 89 01 34 56 78 90
Tailspin Toys Viale Lunedì 4 Piacenza 34 78 90 12 34 89 01 23

Immettere i dati di esempio manualmente

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

Immagine della barra multifunzione di Access

Verrà aggiunta automaticamente una nuova tabella vuota al database.

 Nota   La procedura è obbligatoria quando è necessario aggiungere una tabella al database, ma non se si apre un nuovo database vuoto.

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

Per impostazione predefinita, i campi vuoti della riga di intestazione verranno contrassegnati dal testo Aggiungi nuovo campo, come indicato di seguito:

Nuovo campo in un foglio dati

  1. Utilizzare i tasti di direzione per spostarsi alla cella di intestazione vuota successiva e quindi digitare il nome del secondo campo. In alternativa, è anche possibile premere TAB o fare doppio clic sulla nuova cella. Ripetere questa procedura finché non si immettono tutti i nomi dei campi.
  2. Immettere i dati nella tabella di esempio.

Quando si immettono i dati, verrà impostato automaticamente un tipo di dati per ogni campo. Se non si ha familiarità con i database relazionali, è consigliabile impostare un tipo di dati specifico, ad esempio Numerico, Testo o Data/ora, per ogni campo nelle tabelle. Quando si impostano i tipi di dati, si assicura un'immissione dei dati accurata e priva di errori, ad esempio non viene consentito l'utilizzo di un numero di telefono in un campo di calcolo. Per queste tabelle di esempio è consigliabile consentire l'impostazione automatica dei tipi di dati.

  1. Dopo aver completato l'immissione dei dati, fare clic su Salva.

Scelta rapida da tastiera  Premere MAIUSC+F12

Verrà visualizzata la finestra di dialogo Salva con nome.

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

Si utilizza il nome di ogni tabella di esempio perché corrisponde a quello utilizzato dalle query nelle sezioni pratiche.

Creare i fogli di lavoro di esempio

  1. Avviare il programma per fogli di calcolo e creare un nuovo file vuoto. Se si utilizza Excel, verrà creata una nuova cartella di lavoro per impostazione predefinita.
  2. Copiare la prima tabella di esempio dalla sezione precedente e incollarla nel primo foglio di lavoro, iniziando dalla prima cella.
  3. Utilizzare la tecnica prevista dal programma per fogli di calcolo per assegnare al foglio di lavoro lo stesso nome della tabella di esempio. Ad esempio, se la tabella di esempio è denominata Categorie, assegnare al foglio di lavoro lo stesso nome.
  4. Ripetere i passaggi 2 e 3 per copiare tutte le tabelle di esempio in un foglio di lavoro vuoto e assegnare un nuovo nome a tale foglio.

 Nota   Potrebbe essere necessario aggiungere fogli di lavoro al file di foglio di calcolo. Per informazioni sull'esecuzione di questa attività, vedere la guida del programma per fogli di calcolo in uso.

  1. Salvare la cartella di lavoro in un percorso appropriato nel computer o nella rete e passare alla procedura successiva.

Creare tabelle di database dai fogli di lavoro

  1. In un database nuovo o esistente:

Nel gruppo Importa della scheda Dati esterni fare clic su Excel.

Immagine della barra multifunzione di Access

-oppure-

Fare clic su Altro e quindi selezionare un programma per fogli di calcolo dall'elenco.

Verrà visualizzata la finestra di dialogo Carica dati esterni - Foglio di calcolo di Nome programma.

  1. Fare clic su Sfoglia, aprire il file di foglio di calcolo creato con la procedura precedente e quindi fare clic su OK.

Verrà avviata l'Importazione guidata Foglio di calcolo.

  1. Per impostazione predefinita, nella procedura guidata viene selezionato il primo foglio di lavoro della cartella di lavoro, ovvero, se è stata seguita la procedura della sezione precedente, Clienti, e i dati del foglio di lavoro vengono visualizzati nella parte inferiore della pagina della procedura guidata. Fare clic su Avanti.
  2. Nella pagina successiva della procedura guidata selezionare Intestazioni di colonne nella prima riga e quindi fare clic su Avanti.
  3. Facoltativamente, nella pagina successiva è possibile utilizzare le caselle di testo e gli elenchi disponibili in Opzioni per i campi per modificare i nomi dei campi e i tipi di dati oppure per omettere campi dall'operazione di importazione. Se non si desidera eseguire queste operazioni, fare clic su Avanti.
  4. Lasciare selezionata l'opzione Chiave primaria aggiunta automaticamente e quindi fare clic su Avanti.
  5. Per impostazione predefinita, in Access alla nuova tabella viene assegnato il nome del foglio di lavoro. Accettare il nome o immetterne uno diverso e quindi fare clic su Fine.
  6. Ripetere i passaggi da 1 a 7 per creare una tabella per ogni foglio di lavoro della cartella di lavoro di Excel.

Torna all'inizio Torna all'inizio

Trovare e modificare, nascondere o eliminare i dati duplicati in un'unica tabella

Nelle procedure descritte nelle sezioni seguenti vengono illustrati i modi più comuni per trovare e modificare, nascondere o eliminare i valori duplicati in un'unica tabella.



Trovare record con alcuni campi che corrispondono completamente o in parte

Il processo di ricerca dei record che contengono valori che corrispondono completamente o in parte è costituito dai 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) della query per cercare i valori che corrispondono in parte. Se il codice SQL non viene modificato, la query restituisce solo i record in cui i valori dei campi specificati corrispondono carattere per carattere.

Nelle procedure descritte in questa sezione viene illustrato come creare una query per la ricerca di duplicati e come modificare la query per cercare le corrispondenze parziali. Per le procedure viene utilizzata la tabella Clienti illustrata di seguito. Per utilizzare questa tabella in un database, vedere la sezione Preparare alcuni dati di esempio, più indietro in questo documento. È possibile modificare i passaggi per adattarli ai propri dati.

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 23 45 67 89
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12
Coho Winery Daniela Guaita Via Mercoledì 8 Firenze 34567 23 56 78 90
Humongous Insurance Davide Garghentini Piazza Venerdì 72 Parma 01234 67 89 01 23
Trey Research Adriana Giorgi Via Martedì 58 Piacenza 43210 34 67 89 01
Fourth Coffee Giorgio Cavaglieri Via Domenica 25 Modena 56789 56 90 12 34

Creare la query per la ricerca di duplicati

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

Immagine della barra multifunzione di Access

  1. 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 che indica che la funzionalità non è installata, fare clic su per installare la procedura guidata.

  1. Nell'elenco di tabelle selezionare la tabella contenente i dati duplicati e quindi fare clic su Avanti.
  2. Nell'elenco di campi disponibili selezionare solo i campi che contengono informazioni duplicate. Se si utilizza la tabella Clienti, aggiungere solo i campi Nome società, Indirizzo e Città, che sono gli unici campi che contengono valori corrispondenti carattere per carattere. Fare clic su Avanti.

 Nota   Se i campi aggiunti in questo passaggio non contengono corrispondenze carattere per carattere, la query potrebbe non restituire alcun risultato.

  1. 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 Telefono, 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.
  2. Accettare il nome suggerito, ovvero Trova duplicati per Clienti oppure immettere il nome desiderato e quindi fare clic su Fine per eseguire la query. Se è stata utilizzata la tabella Clienti, verranno visualizzati i risultati seguenti:
Nome società Indirizzo Città Nome contatto Telefono
Fourth Coffee Via Domenica 25 Modena Massimiliano Monaco 56 78 90 12
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 le 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.[Telefono]
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, nella clausola WHERE viene utilizzata una seconda istruzione SELECT per confrontare ogni record con tutti gli altri record della tabella, al fine di identificare i set di duplicati.

Si supponga di voler modificare il campo Indirizzo in modo che vengano restituite le corrispondenze parziali. Nella tabella seguente viene illustrato come modificare le istruzioni in modo che debbano corrispondere solo i primi sette caratteri del campo. Le modifiche sono visualizzate in grassetto:

Istruzione SQL Descrizione
SELECT Clienti.[Nome società], Clienti.[Indirizzo], Clienti.[Città], Clienti.[Nome contatto], Clienti.[Telefono] Nessuna modifica. Si desidera visualizzare gli stessi campi, incluso il campo Indirizzo completo per ogni set 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 anziché l'intero valore del campo. Per trovare la corrispondenza di un numero di caratteri inferiore o superiore, immettere un numero inferiore o superiore.
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 EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

Verranno ora restituiti tutti e quattro i record duplicati, in quanto viene trovata la corrispondenza solo dei primi sette caratteri, a partire da sinistra, del campo Indirizzo:

Nome società Indirizzo Città Nome contatto Telefono
Coho Winery Via Mercoledì 15 Firenze Guido Pica 23 45 67 89
Coho Winery Via Mercoledì 8 Firenze Daniela Guaita 23 56 78 90
Fourth Coffee Via Domenica 25 Modena Massimiliano Monaco 56 78 90 12
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 con la procedura precedente.
  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, o riga, fare clic sul selettore di riga, ovvero la casella vuota accanto alla riga, e premere CANC.

 Nota   Se i record duplicati trovati sono troppi per essere eliminati manualmente, è possibile eliminarli creando ed eseguendo una query di eliminazione. Per i passaggi di base relativi alla creazione e all'esecuzione di una query di eliminazione, vedere la sezione Utilizzare una query di eliminazione per eliminare i record duplicati, più avanti in questo argomento.

Per informazioni più complete sull'utilizzo di query di eliminazione, incluse informazioni sulla pianificazione di un'eliminazione e sulla modifica delle relazioni tra tabelle e l'eliminazione di dati correlati, vedere l'articolo Utilizzare query per eliminare uno o più record di un database.

Inizio della sezione

Visualizzare i record univoci nascondendo i duplicati

La maggior parte delle tabelle di database dispone di un campo che identifica in modo univoco ogni record, in genere il campo chiave primaria. Quando si progetta una query e si nasconde o si omette questo tipo di campo, potrebbero venire visualizzati record che sembrano duplicati in quanto tutti i valori di tutti i campi restituiti corrispondono.

Nella figura seguente viene ad esempio illustrato il risultato di una query in cui due ordini, nella casella rossa, sembrano essere duplicati.

Query basata sulla tabella Clienti, in cui due record hanno valori corrispondenti in tutti i campi

Includendo tuttavia nella query un campo chiave primaria, ad esempio l'ID ordine, o un altro campo che identifica in modo univoco ogni record, ad esempio una data di spedizione, è possibile vedere che i record non sono duplicati. Nella procedura descritta in questa sezione viene illustrato come nascondere i record duplicati in cui i valori di tutti i campi restituiti dalla query corrispondono. È ad esempio possibile nascondere uno dei record relativi a Ezio Alboni, ma non i record relativi a Delikatessen ABC, in quanto i campi Indirizzo contengono valori diversi.

Ricordarsi che due o più record sono considerati duplicati solo quando tutti i campi dei risultati della query contengono gli stessi valori. Se i valori sono diversi anche in un solo campo, ogni record è univoco e non è possibile nascondere tali record utilizzando le tecniche descritte in questa sezione. Se si desidera nascondere record duplicati di questo tipo, è possibile utilizzare una query di totalizzazione con una funzione di aggregazione, ad esempio PRIMO, MIN, MAX e così via. Per informazioni su questa operazione, vedere la sezione Visualizzare record distinti specificando quali duplicati vengono inclusi nei risultati, più avanti in questo articolo.

In Access sono disponibili due modi per visualizzare solo i valori univoci di un set di risultati di una query:

  • Se il campo chiave primaria, o un altro campo che rende univoco un record, è stato nascosto, scoprire la colonna.
  • Creare una query di selezione e impostare la proprietà Valori univoci della query su . Quando tramite la query vengono trovati valori duplicati, viene visualizzato uno solo dei duplicati, ovvero il primo che viene rilevato, e gli altri vengono nascosti.

Nelle procedure descritte in questa sezione viene illustrato come utilizzare entrambe queste 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, ovvero la riga 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 che si desidera aggiungere al foglio dati e quindi fare clic su OK.

Impostare la proprietà Valori univoci

 Nota   Dopo avere impostato la proprietà Valori univoci di una query su , non è possibile modificare i valori di campo o eliminare i dati quando la query è in visualizzazione Foglio dati. Per modificare o eliminare i 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

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

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

  1. Nell'elenco di tabelle selezionare la tabella contenente i record duplicati e quindi fare clic su Avanti.
  2. Nell'elenco di campi disponibili selezionare solo i campi che contengono informazioni duplicate e quindi fare clic su Avanti.
  3. Fare di nuovo clic su Avanti senza selezionare ulteriori campi. Aggiungendo altri campi in Access alcuni record duplicati potrebbero venire trattati come univoci.
  4. Accettare il nome suggerito per la query o immettere il nome desiderato, fare clic su Modificare la struttura della query e quindi su Fine per aprire la query in visualizzazione Struttura.
  5. Fare clic con il pulsante destro del mouse nell'area vuota nella parte superiore di Progettazione query e quindi scegliere Proprietà.
  6. Nella finestra delle proprietà individuare la proprietà Valori univoci e impostarla su .

Visualizzazione della finestra delle proprietà della query

  1. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati. Se i dati contengono record duplicati, verrà visualizzato uno solo di tali record.

Inizio della sezione

Visualizzare record distinti specificando quali duplicati vengono inclusi nei risultati

Quando sono presenti record duplicati, si potrebbe voler visualizzare solo i valori distinti, ovvero un record per ogni set di duplicati. Per eseguire una query per trovare un record duplicato specifico, è necessario utilizzare una query detta di totalizzazione. Quando si aggiungono campi a una query di totalizzazione, ogni campo viene trattato come un gruppo ed è possibile eseguire un tipo di funzione detta di aggregazione sui dati di ogni gruppo. Queste funzioni possono a loro volta restituire un record da un set di duplicati.

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

  • Utilizzare la funzione Primo per visualizzare solo il record immesso per primo.
  • Utilizzare la funzione Ultimo per visualizzare solo il record immesso per ultimo.
  • Utilizzare la funzione Max o Min per visualizzare solo il record con il valore più piccolo o più grande in un campo specifico. È ad esempio possibile visualizzare il record con la data più recente utilizzando la funzione Max oppure quello con la data meno recente utilizzando la funzione Min.

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

Nella procedura descritta in questa sezione viene illustrato come creare query per cercare i record originali, più recenti e meno recenti. Per questa procedura viene utilizzata la tabella Dipendenti.

Cognome Nome Indirizzo Città Data di nascita Data di assunzione
Ruspini Davide Piazza Martedì 28 Milano 05-feb-1968 10-giu-1994
Martino Agostino Via Giovedì 47 Bologna 22-mag-1957 22-nov-1996
Pica Guido Via Mercoledì 15 Firenze 11-nov-1960 11-mar-2000
Tanara Marco Corso Venerdì 68 Bologna 22-mar-1964 22-giu-1998
Monaco Massimiliano Via Domenica 25 Modena 05-giu-1972 05-gen-2002
Guaita Daniela Via Mercoledì 8 Firenze 23-gen-1970 23-apr-1999
Garghentini Davide Piazza Venerdì 72 Parma 14-apr-1964 14-ott-2004
Giorgi Adriana Via Martedì 58 Piacenza 29-ott-1959 29-mar-1997
Tanara Marco Corso Venerdì 68 Bologna 22-mar-1964 20-giu-1998

Per utilizzare questa tabella in un database, vedere la sezione Preparare alcuni dati di esempio, più indietro in questo articolo.

Utilizzare una query di totalizzazione

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

Immagine della barra multifunzione di Access

  1. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella contenente i dati duplicati e quindi su Chiudi.

La tabella verrà visualizzata nella parte superiore di Progettazione query.

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

Se si utilizza la tabella di esempio Dipendenti, aggiungere i campi Cognome, Nome e Data di nascita, che sono quelli che determinano la duplicazione.

  1. Aggiungere il campo che specifica il criterio di selezione.

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

 Nota   Non aggiungere ulteriori campi alla griglia. Una query di totalizzazione deve includere solo il campo o i campi che contengono dati duplicati e un ulteriore campo che contiene i dati da utilizzare per il test.

  1. Nella scheda Struttura fare clic su Totali nel gruppo Mostra/NascondiIcona del pulsante. Nella griglia di struttura verrà visualizzata la riga Formula e nelle colonne contenenti i campi della tabella verrà visualizzato Raggruppamento.
  2. Lasciare la riga Formula di tutti i campi impostata su Raggruppamento e quindi fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati. Se sono stati utilizzati i dati della tabella precedente, la query restituirà "Marco Tanara" due volte in quanto i relativi record duplicati includono date di assunzione diverse.
  3. Tornare in visualizzazione Struttura e specificare una condizione per selezionare un record tra i duplicati. Per utilizzare i dati di esempio, modificare il valore nella colonna Data di assunzione nella riga Formula come indicato di seguito:
    • Per visualizzare il record originale, modificare il valore impostandolo su Primo.
    • Per visualizzare il record immesso più di recente, modificare il valore impostandolo su Ultimo.
    • Per selezionare un record in base al valore in un campo specifico, utilizzare la funzione Max o Min. In questo esempio si desidera visualizzare il record con la data di assunzione meno recente. A tale scopo, impostare il valore su Min.
  4. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

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

Inizio della sezione

Utilizzare funzioni di aggregazione, ad esempio Conteggio, Somma e Media, nei record duplicati

Oltre a restituire un record specifico di un gruppo di duplicati, è inoltre possibile utilizzare 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.

È possibile eseguire queste operazioni creando una query di totalizzazione che utilizzi le funzioni di aggregazione, ad esempio Conteggio, Somma e Media, per riepilogare i dati duplicati presenti nella tabella.

 Nota   Non è possibile modificare i valori di campo o eliminare i record quando si analizza una query di totalizzazione in visualizzazione Foglio dati. Per modificare o eliminare i dati, aprire la tabella sottostante in visualizzazione Foglio dati.

Per la procedura descritta in questa sezione viene utilizzata la tabella Importo dovuto.

Nome società Nome contatto Indirizzo Città CAP Telefono 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 23 45 67 89 € 321,79
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78 € 457,68
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12 € 98,75
Coho Winery Daniela Guaita Via Mercoledì 8 Firenze 34567 23 56 78 90 € 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 34 67 89 01 € 509,09
Fourth Coffee Giorgio Cavaglieri Via Domenica 25 Modena 56789 56 90 12 34 € 98,75

Per utilizzare questa tabella in un database, vedere la 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

  1. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella che si desidera utilizzare nella query oppure fare clic su Aggiungi e quindi su Chiudi per chiudere la finestra di dialogo. Se si stanno utilizzando i dati di esempio, aggiungere alla query la tabella Importo dovuto.
  2. Aggiungere i campi che contengono i dati duplicati.

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

  1. Aggiungere il campo che specifica il criterio di selezione. Se si utilizza la tabella Importo dovuto, aggiungere il campo Importo dovuto.
  2. Nella scheda Struttura fare clic su Totali nel gruppo Mostra/NascondiIcona del pulsante. Nella griglia di struttura verrà visualizzata la riga Formula e nella riga di ogni campo verrà visualizzato Raggruppamento.
  3. Eseguire una delle operazioni seguenti, in base alle proprie necessità:
    • Per contare il numero di record, selezionare il campo che contiene i valori che si desidera contare e quindi modificare il valore del campo nella riga Formula impostandolo su Conteggio. Se si utilizzano i dati di esempio, impostare il valore nel campo Importo dovuto su Conteggio.
    • Per calcolare un importo totale, impostare il valore del campo su Somma.

 Nota   Una query di totalizzazione consente di visualizzare solo informazioni di riepilogo e non i singoli valori.

  1. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

Inizio della sezione

Utilizzare una query di eliminazione per eliminare i record duplicati

Dopo avere verificato che la tabella contiene record duplicati, è possibile eliminare i dati non desiderati creando ed eseguendo una query di eliminazione. Il processo di creazione ed esecuzione di una query di eliminazione è costituito in genere dai passaggi generali seguenti:

  • Pianificare l'eliminazione. A tale scopo, è necessario determinare se i dati che si desidera eliminare sono correlati ai dati di un'altra tabella. In questo caso, è necessario determinare se i dati si trovano sul lato "uno" o sul lato "molti" di una relazione uno-a-molti. Se i dati si trovano sul lato "uno", per poterli eliminare è necessario attivare una proprietà della relazione, mentre se si trovano sul lato "molti" è possibile creare ed eseguire la query senza ulteriori operazioni. Per analizzare le relazioni in un database, è possibile utilizzare lo strumento Relazioni. Per avviare questo strumento, nella scheda Strumenti database fare clic su Relazioni nel gruppo Mostra/Nascondi.

Per ulteriori informazioni sulla pianificazione e sull'esecuzione di query di eliminazione, vedere l'articolo Utilizzare query per eliminare uno o più record di un database.

  • Creare una query, ad esempio una query di selezione o una query a valori univoci, e aggiungere o modificare i criteri fino a quando la query restituisce solo i dati che si desidera eliminare.
  • Convertire la query in una query di eliminazione e quindi eseguire la query di eliminazione per eliminare i dati non desiderati.

 Importante   Non è possibile annullare i risultati di una query di eliminazione. Per questo motivo, è consigliabile eseguire il backup del database prima di eseguire la query di eliminazione. Per informazioni sull'esecuzione del backup del database, vedere la sezione Eseguire il backup di un database, più indietro in questo articolo.

Nelle procedure seguenti viene illustrato come creare una query di selezione, convertirla in una query di eliminazione ed eseguire quest'ultima per eliminare i record.

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.

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

La tabella verrà visualizzata in una finestra nella parte superiore della griglia di struttura della query. Nella finestra sono elencati tutti i campi della tabella. Nella figura seguente viene illustrata una tabella tipica in Progettazione query.

Una tabella in Progettazione query

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

Aggiungendo tutti i campi della tabella, tramite la query di eliminazione sarà possibile eliminare dalla tabella interi record, o righe.

  1. Facoltativamente, aggiungere una colonna che consenta di immettere i criteri.

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

  1. Dopo avere eseguito il passaggio precedente, immettere i criteri nella riga Criteri della griglia di struttura.

Utilizzare i criteri per restituire solo i record che si desidera eliminare. In caso contrario, tramite la query di eliminazione verranno eliminati tutti i record della tabella. Per continuare con l'esempio precedente, immettere il numero ID del cliente che ha cessato l'attività e la data a partire dalla quale gli ordini del cliente non sono più validi.

Per ulteriori informazioni sull'utilizzo di criteri, vedere l'articolo Utilizzare query per eliminare uno o più record di un database.

  1. Dopo avere eseguito il passaggio precedente, deselezionare la casella di controllo Mostra per ogni campo dei criteri.
  2. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Verificare che la query restituisca i record che si desidera eliminare.

  1. Tenere aperta la query ed eseguire la procedura successiva.

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

  1. Fare clic su Visualizzazione Struttura per passare dal foglio dati a Progettazione query.
  2. Nel gruppo Tipo di query della scheda Struttura fare clic su Eliminazione.

In Access la query di selezione verrà modificata in query di eliminazione, la riga Mostra nella parte inferiore della griglia di struttura verrà nascosta e verrà aggiunta la riga Elimina.

Verificare che nella riga Elimina della colonna *, che contiene tutti i campi, sia visualizzato il valore Da. Nelle colonne dei criteri dovrebbe essere invece visualizzato il valore Dove.

  1. Assicurarsi di voler eliminare i dati e quindi fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

Verrà visualizzato un messaggio che richiede 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.

Verrà visualizzata la finestra di dialogo Opzioni di Access.

  • Fare clic su Avanzate e nella sezione Modifica, in Conferma deselezionare la casella di controllo Query di comando.
  • Fare clic su OK per chiudere la finestra di dialogo Opzioni di Access.

Inizio della sezione

Impedire agli utenti di immettere valori duplicati

È possibile impedire agli utenti di immettere valori duplicati applicando alcune regole:

  • Impostare un campo in modo che possa contenere solo valori univoci.    A tale scopo, 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 primariaIcona del pulsante. In un campo chiave primaria è possibile immettere solo valori univoci e, se gli utenti immettono un valore duplicato, viene visualizzato un messaggio.
    • Se la tabella include 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. Ricordarsi che in alcuni casi, ad esempio in campi che contengono informazioni su nome 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 disporre di una tabella di dati dei contatti. È possibile designare una combinazione di campi, ad esempio Nome contatto, Indirizzo e Città, come chiave primaria per la tabella.

Si tratta di un buon approccio in quanto è molto 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 che si desidera includere nella chiave primaria.
  4. Fare clic con il pulsante destro del mouse e quindi scegliere Chiave primaria Icona del pulsante dal menu di scelta rapida.

Questo passaggio consente di impostare 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 o 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ì 68 ma non possono vivere entrambi a Bologna.

Inizio della sezione


Torna all'inizio Torna all'inizio

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

Le informazioni incluse nelle sezioni seguenti illustrano alcuni modi per trovare e modificare, nascondere o eliminare i record duplicati presenti in più tabelle. In genere, i dati di due o più tabelle si sovrappongono quando si cerca di integrare due database.



Quando in due tabelle sono presenti duplicati, visualizzarli uno accanto all'altro

Spesso nello stesso database sono presenti due tabelle che contengono dati duplicati o sovrapposti. Si supponga, ad esempio, di disporre di una tabella Acquirenti e di una tabella Clienti:

Tabella Acquirenti    

Nome Indirizzo Città Telefono Fax
Baldwin Museum of Science Piazza Martedì 28 Milano 45 67 89 01 45 78 90 12
Blue Yonder Airlines Via Giovedì 47 Bologna 12 12 34 56 12 23 45 67
Coho Winery Via Mercoledì 15 Firenze 23 45 67 89 23 56 78 90
Contoso S.p.A. Corso Venerdì 68 Bologna 12 34 56 78 12 45 67 89
Fourth Coffee Via Domenica 25 Modena 56 78 90 12 56 89 01 23
Consolidated Messenger Via Mercoledì 8 Firenze 23 56 78 90 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 34 67 89 01 34 56 78 90
Tailspin Toys Viale Lunedì 4 Piacenza 34 78 90 12 34 89 01 23

Tabella Clienti    

Nome società Nome contatto Indirizzo Città CAP Numero 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 23 45 67 89
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12
Adventure Works Daniela Guaita Corso Mercoledì 3122 Firenze 34567 23 56 78 90
Humongous Insurance Davide Garghentini Piazza Venerdì 72 Parma 01234 67 89 01 23
Trey Research Adriana Giorgi Via Martedì 58 Piacenza 43210 34 67 89 01
Fabrikam S.p.A. Fernando Caro Piazza Giovedì 9 Firenze 56789 23 78 90 12

Si noti che, in questo caso, le singole tabelle non contengono valori duplicati, ma i campi di entrambe le tabelle contengono valori sovrapposti, ad esempio i dati del campo Nome della tabella Acquirenti 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 Acquirenti potrebbe contenere informazioni più recenti, mentre la tabella Clienti potrebbe contenere dati più aggiornati per altri utenti. In genere, è consigliabile analizzare il contenuto di entrambe le tabelle e quindi decidere cosa mantenere e cosa eliminare.

Per unire i record delle due tabelle, creare una query di unione. Tramite la query i record duplicati verranno posizionati uno accanto all'altro per consentirne una più semplice analisi.

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

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

Immagine della barra multifunzione di Access

In Access verrà creata una nuova query. Verrà visualizzata la finestra di dialogo Mostra tabella.

  1. Chiudere la finestra di dialogo Mostra tabella senza aggiungere alla griglia di struttura alcuna tabella o query.
  2. Fare clic con il pulsante destro del mouse sulla scheda documento per la query e quindi scegliere Visualizzazione SQL.
  3. Se come esempio sono state utilizzate le tabelle precedenti, incollare nella finestra l'istruzione SQL seguente. Se sono stati utilizzati dati personalizzati, utilizzare l'istruzione SQL seguente come riferimento. Utilizzare le clausole SELECT, UNION ALL SELECT e ORDER BY come illustrato, ma sostituire i nomi di campi e tabelle in base ai propri dati.

SELECT [Nome società], [Indirizzo], [Città], [Numero telefono], FROM [Clienti]
UNION ALL SELECT [Nome], [Indirizzo], [Città], [Telefono], FROM [Acquirenti]
ORDER BY [Nome società];

La prima istruzione SELECT recupera i record dalla tabella Clienti mentre la seconda istruzione SELECT recupera i record dalla tabella Acquirenti. La clausola UNION ALL unisce tutti i record di entrambe le tabelle. L'istruzione ORDER BY ordina i record in modo che i record duplicati siano collocati vicini per semplificarne l'analisi.

 Nota   È necessario che ogni istruzione SELECT restituisca lo stesso numero di campi e nello stesso ordine. I campi corrispondenti devono includere tipi di dati compatibili, con l'eccezione che è possibile utilizzare un campo di tipo Numerico e un campo di tipo Testo come campi corrispondenti. I campi possono inoltre avere nomi diversi.

  1. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

Se sono stati utilizzati i record delle tabelle precedenti, verranno visualizzati 18 record, ovvero tutti i nove record della tabella Clienti e tutti i nove record della tabella Acquirenti.

Salvare la query e chiudere la vista. La query verrà utilizzata nella sezione seguente.

Inizio della sezione

Quando in due tabelle sono presenti duplicati, visualizzare solo un record

A volte, potrebbe essere necessario visualizzare solo i record diversi di tabelle simili. Se un record è presente in entrambe le tabelle, è possibile includere il record della prima tabella e ignorare quello corrispondente della seconda tabella.

In Access i record di diverse tabelle vengono considerati duplicati solo se i valori di tutti i campi selezionati corrispondono. Se, ad esempio, si includono nella query i campi Nome società, Città, Indirizzo, Telefono e Fax, affinché i record vengano considerati duplicati, è necessario che corrispondano i valori di tutti e cinque i campi.

Nella procedura descritta in questa sezione viene illustrato come modificare la query della sezione precedente per visualizzare tutti i record della tabella Clienti e solo i record univoci della tabella Acquirenti.

 Nota   Non è possibile modificare i dati restituiti da una query di unione. Per modificare o eliminare i dati, aprire la tabella sottostante 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 visualizzare l'istruzione SQL.
  3. Eliminare i campi [Numero telefono] e [Telefono] da entrambe le istruzioni SELECT.
  4. Eliminare la parola ALL dopo la parola UNION. In questo modo, i record duplicati della tabella Acquirenti verranno ignorati. L'istruzione SQL sarà simile alla seguente.

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

  1. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati.

Se sono stati utilizzati i dati di esempio della sezione precedente, la query restituirà 14 record anziché 18.

Inizio della sezione

Visualizzare solo i record duplicati trovati in entrambe le tabelle

Quando si desidera eseguire una query per trovare solo i valori corrispondenti di due tabelle, è necessario utilizzare un inner join. Un inner join è un'operazione che consente di collegare le righe di due o più tabelle solo se i valori dei campi collegati tramite join corrispondono.

Per creare un inner join, è necessario generare una query di selezione che include entrambe le tabelle e quindi creare una relazione tra i campi che contengono i valori duplicati. Per impostazione predefinita, in Access viene creato un inner join quando si crea la relazione.

 Nota   Non è possibile modificare le righe o i campi restituiti da una query di selezione con un inner join. Se si desidera modificare i dati, aprire le tabelle sottostanti e modificare i valori in ogni tabella.

Creare una query con un inner join

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

Immagine della barra multifunzione di Access

  1. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella Clienti e sulla tabella Acquirenti e quindi su Chiudi per chiudere la finestra di dialogo.
  2. Identificare i campi che contengono valori corrispondenti nei record duplicati. Se si utilizzano le tabelle di esempio, il campo Nome società della tabella Clienti corrisponde al campo Nome della tabella Acquirenti.
  3. Trascinare il campo Nome società della prima tabella sul campo Nome della seconda tabella. In Access i campi verranno collegati da 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, tramite la query viene creato un inner join tra le due tabelle. Un inner join consente di selezionare solo i record in cui il campo Nome società corrisponde al campo Nome.

  1. Fare doppio clic sul campo Nome società per aggiungerlo alla griglia di struttura della query. Questo campo sarà utile per identificare i record in visualizzazione Foglio dati.
  2. Fare doppio clic sugli altri campi desiderati delle tabelle Clienti e Acquirenti per aggiungerli alla griglia di struttura della query. In questo caso, aggiungere il campo Numero telefono della tabella Clienti e il campo Telefono della tabella Acquirenti.
  3. Fare clic su EseguiIcona del pulsante per eseguire la query e mostrare i risultati in visualizzazione Foglio dati. La query restituirà cinque risultati, uno per ogni cliente con un record in entrambe le tabelle.
Nome società Numero telefono (Clienti) Telefono (Acquirenti)
Baldwin Museum of Science 45 67 89 01 45 78 90 12
Blue Yonder Airlines 12 12 34 56 12 23 45 67
Coho Winery 23 45 67 89 23 45 67 89
Contoso S.p.A. 12 34 56 78 12 34 56 78
Fourth Coffee 56 78 90 12 56 78 90 12

Inizio della sezione

Visualizzare solo i record di una tabella per cui non vi sono record corrispondenti in un'altra tabella

Continuando con lo scenario che prevede la presenza di dati duplicati nella tabella Clienti e nella tabella Acquirenti, verrà ora illustrato come fare per visualizzare solo i record della tabella Clienti per i quali non è presente un record duplicato nella tabella Acquirenti. Questo può essere utile per prendere decisioni relative a determinati clienti in base esclusivamente al contenuto della tabella Clienti, prima di passare al consolidamento delle due tabelle.

Per visualizzare solo i record della tabella Clienti per i quali non è presente una corrispondenza nella tabella Acquirenti, creare una query di ricerca dati non corrispondenti. Utilizzando i dati di esempio, questo tipo di query recupera tutti i record della tabella Clienti per i quali non ci sono record corrispondenti nella tabella Acquirenti.

 Nota   È possibile modificare i valori di campo o eliminare record quando la query è in visualizzazione Foglio dati.

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

  1. Nella finestra di dialogo Nuova query fare clic su Creazione guidata Query ricerca dati non corrispondenti e quindi su OK.
  2. Fare clic sulla tabella Clienti, ovvero la tabella che contiene i record a cui si è interessati. Fare clic su Avanti.
  3. Fare clic sulla tabella Acquirenti, ovvero la tabella che si desidera confrontare con la tabella Clienti. Fare clic su Avanti.
  4. Fare clic sul campo Nome società nella tabella Clienti e sul campo Nome nella tabella Acquirenti e quindi sul pulsante <=>. In questo modo, le tabelle verranno collegate in base ai nomi dei clienti. Fare clic su Avanti.
  5. Selezionare i campi che si desidera visualizzare. In questo caso, aggiungere i campi Nome società, Indirizzo, Città e Numero telefono. Fare clic su Avanti.
  6. Digitare un nome per la query e fare clic su Fine per mostrare i record in visualizzazione Foglio dati. Se si utilizzano le tabelle di esempio, la query restituisce quattro record, ovvero i record della tabella Clienti per i quali non vi sono record sovrapposti nella tabella Acquirenti.
Nome società Indirizzo Città Numero telefono
Adventure Works Corso Mercoledì 3122 Firenze 23 56 78 90
Humongous Insurance Piazza Venerdì 72 Parma 67 89 01 23
Trey Research Via Martedì 58 Piacenza 34 67 89 01
Fabrikam S.p.A. Piazza Giovedì 9 Firenze 23 78 90 12

Inizio della sezione

Eliminare i record duplicati da una tabella e unire i record rimanenti in un'altra tabella

Dopo avere visualizzato i dati duplicati in tabelle simili, è possibile eliminare i record duplicati e unire i dati rimanenti in un'unica tabella. Questo processo è costituito dai passaggi generali seguenti:

  • Facoltativamente, nella tabella che si desidera eliminare aggiornare i dati che si desidera unire. La modalità di aggiornamento dei dati non viene illustrata in questo argomento.

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

  • Facoltativamente, analizzare le relazioni che potrebbero essere presenti tra la tabella che si desidera eliminare e altre tabelle del database. Se è presente una relazione, eliminare la relazione e quindi stabilire una nuova relazione con l'altra tabella, ovvero quella contenente i dati uniti. È tuttavia necessario assicurarsi che i valori della chiave primaria della nuova tabella corrispondano a quelli della chiave primaria delle altre tabelle.
  • Creare una query di eliminazione che utilizzi la proprietà Valori univoci per trovare ed eliminare eventuali record corrispondenti. Verificare inoltre di non interrompere alcuna relazione tra le tabelle del database. Si supponga, ad esempio, di voler spostare tutti i record univoci della tabella Acquirenti nella tabella Clienti e quindi eliminare la tabella Acquirenti. Se la tabella Acquirenti è correlata ad altre tabelle nel database, è necessario assicurarsi che tali relazioni passino alla tabella Clienti. Le relazioni non vengono descritte in modo dettagliato in questo argomento.

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

  • Creare una query di accodamento per aggiungere i record rimanenti della tabella che si desidera mantenere. A tale scopo, potrebbe essere necessario aggiungere i valori e il campo chiave primaria dei dati accodati alla tabella che si desidera mantenere.
  • Eliminare la tabella non desiderata.

Nelle procedure descritte in questa sezione viene illustrato come creare e utilizzare una query di eliminazione e una query di accodamento e come eliminare una tabella. Per queste procedure vengono utilizzate le tabelle Clienti e Acquirenti.

Tabella Clienti    

Nome società Nome contatto Indirizzo Città CAP Numero 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 23 45 67 89
Contoso S.p.A. Marco Tanara Corso Venerdì 68 Bologna 23456 12 34 56 78
Fourth Coffee Massimiliano Monaco Via Domenica 25 Modena 56789 56 78 90 12
Adventure Works Daniela Guaita Corso Mercoledì 3122 Firenze 34567 23 56 78 90
Humongous Insurance Davide Garghentini Piazza Venerdì 72 Parma 01234 67 89 01 23
Trey Research Adriana Giorgi Via Martedì 58 Piacenza 43210 34 67 89 01
Fabrikam S.p.A. Fernando Caro Piazza Giovedì 9 Firenze 56789 23 78 90 12

Tabella Acquirenti    

Nome Indirizzo Città Telefono Fax
Baldwin Museum of Science Piazza Martedì 28 Milano 45 67 89 01 45 78 90 12
Blue Yonder Airlines Via Giovedì 47 Bologna 12 12 34 56 12 23 45 67
Coho Winery Via Mercoledì 15 Firenze 23 45 67 89 23 56 78 90
Contoso S.p.A. Corso Venerdì 68 Bologna 12 34 56 78 12 45 67 89
Fourth Coffee Via Domenica 25 Modena 56 78 90 12 56 89 01 23
Consolidated Messenger Via Mercoledì 8 Firenze 23 23 45 67 23 34 56 78
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 34 78 90 12 34 89 01 23

Per utilizzare queste tabelle in un database, vedere la sezione Preparare alcuni dati di esempio, più indietro in questo articolo. Per questo esercizio, si presuppone che la tabella Clienti contenga le informazioni più aggiornate, pertanto si desidera eliminare i record corrispondenti dalla tabella Acquirenti a quindi unire i record rimanenti della tabella Acquirenti con la tabella Clienti.

Eliminare i dati non desiderati

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

Immagine della barra multifunzione di Access

  1. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella Clienti e sulla tabella Acquirenti e quindi chiudere la finestra di dialogo.
  2. Collegare le due tabelle trascinando il campo Nome società della tabella Clienti sul campo Nome della tabella Acquirenti.
  3. Fare clic con il pulsante destro del mouse nell'area vuota nella parte superiore della finestra e quindi scegliere Proprietà. Impostare il valore della proprietà Record univoci su .

Collegando le due tabelle e impostando il valore della proprietà Record univoci su , è possibile evitare la visualizzazione del messaggio di errore Could not delete from the specified tables che verrebbe altrimenti visualizzato al momento dell'esecuzione della query.

  1. Nel gruppo Tipo di query della scheda Struttura fare clic su Eliminazione.
  1. Trascinare l'asterisco (*) dalla tabella Acquirenti alla riga Campo della prima colonna della griglia di struttura della query.

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

Nella riga Tabella verrà visualizzato Acquirenti e nella riga Elimina verrà visualizzato Da. Questo significa che tramite la query verranno eliminate le righe dalla tabella Acquirenti.

  1. A questo punto, è necessario specificare quali record devono essere eliminati tramite la query. Se si utilizzano le tabelle di esempio, eliminare i record in cui i valori dei campi Nome, Indirizzo e Città della tabella Acquirenti sono uguali a quelli dei campi corrispondenti nella tabella Clienti.

Trascinare il campo Nome dalla tabella Acquirenti alla prima cella vuota della riga Campo nella griglia di struttura della query. Eseguire la stessa operazione per i campi Indirizzo e Città della tabella Acquirenti.

  1. Se si utilizzano le tabelle di esempio, nella riga Criteri del campo Nome digitare [Clienti].[Nome società]. Nella riga Criteri del campo Indirizzo digitare [Clienti].[Indirizzo]. Nella riga Criteri del campo Città digitare [Clienti].[Città]. La griglia di struttura della query avrà un aspetto simile al seguente:

Campi e criteri che determinano i record duplicati

Eseguendo la query, verranno eliminati tutti i record che soddisfano i criteri specificati, ovvero i record con valori corrispondenti nei tre campi di ogni tabella.

  1. Fare clic su VisualizzaIcona del pulsante per visualizzare in anteprima i record che verranno eliminati eseguendo la query. Verranno visualizzati cinque record duplicati della tabella Acquirenti.
  2. Fare clic su EseguiIcona del pulsante per eseguire la query. Quando viene richiesto di confermare l'eliminazione, fare clic su .
  3. Passare alla procedura successiva 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

  1. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella di origine, quindi sulla tabella contenente i record che si desidera accodare e infine fare clic su Chiudi. Se si utilizzano i dati di esempio, fare doppio clic sulla tabella Acquirenti.
  2. Nel gruppo Tipo di query della scheda Struttura fare clic su Accodamento.
  1. Nella finestra di dialogo Accodamento selezionare la tabella di destinazione, ovvero quella a cui si desidera accodare i dati, nell'elenco Nome tabella. Se si utilizzano le tabelle di esempio, selezionare la tabella Clienti e quindi fare clic su Chiudi.
  2. Spostare i campi che si desidera accodare dalla tabella di origine alla riga Campo della griglia di struttura.

 Importante   Spostare solo i campi per i quali è presente un campo corrispondente nella tabella di destinazione.

Se si utilizzano i dati di esempio, spostare i campi Nome, Indirizzo e Telefono.

  1. Fare clic sulla riga Accoda a per ogni campo e selezionare il nome del campo corrispondente della tabella di destinazione. Se si utilizzano i dati di esempio, selezionare rispettivamente i campi Nome società, Indirizzo e Numero telefono.
  2. Poiché si desidera aggiungere tutti i record della tabella Acquirenti alla tabella Clienti, non è necessario specificare alcun criterio. Fare clic su VisualizzaIcona del pulsante per visualizzare in anteprima i record che verranno aggiunti alla tabella Clienti eseguendo la query.
  3. Salvare e chiudere la vista.
  4. Individuare la query di accodamento e fare doppio clic su di essa. Fare clic su per confermare l'operazione di accodamento.

MostraImpedire la visualizzazione di 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 General Editing in Conferma deselezionare la casella di controllo Query di comando.

Eliminare la tabella

  1. Verificare di disporre delle autorizzazioni necessarie per eliminare le tabelle del database, che il database non sia di sola lettura e che la tabella non sia aperta da un altro utente.
  2. Nel riquadro di spostamento fare clic sulla tabella che si desidera eliminare.
  3. Premere CANC e fare clic su per confermare che si desidera eliminare la tabella.

 Nota   Eliminando le tabelle del database si potrebbe impedire l'utilizzo di alcune o tutte le funzionalità di un database. Per questo motivo, è necessario pianificare un'eliminazione per assicurarsi che il database rimanga funzionale, nonché eseguire sempre il backup del database prima di eliminare dati o altri componenti.

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

Inizio della sezione

Visualizzare solo i record diversi quando si visualizzano i dati di tabelle correlate

Tramite una query che unisce i dati di due tabelle correlate, potrebbero venire visualizzati record in cui tutti i campi sembrano corrispondere. Se, tuttavia, si analizzano le tabelle, è possibile capire che in realtà queste non contengono record duplicati. Questo problema si verifica quando la query non include determinati campi, ad esempio un campo chiave primaria, che possono identificare in modo univoco ogni record. In scenari di questo tipo i record non devono essere eliminati, ma è possibile nascondere i dati che sembrano duplicati.

Si supponga, ad esempio, di utilizzare una query per raccogliere i dati degli ordini dei clienti da due tabelle e verificare che gli ordini vengano evasi entro i tempi stabiliti. I clienti possono effettuare un ordine per più prodotti, pertanto ogni prodotto diventa un record distinto, ovvero una riga, nelle tabelle sottostanti. Poiché un ordine viene effettuato in un unico giorno e quindi spedito in un unico giorno, i record di un determinato ordine possono contenere numerose date duplicate, come illustrato di seguito:

Campi con valori univoci rimossi dalla query Completamento ordine

Poiché si sa che gli ordini arrivano in un determinato giorno e che le spedizioni vengono effettuate in un determinato giorno, è necessario visualizzare un solo record, o riga, per ordine. Per visualizzare record univoci delle tabelle che contengono i dati degli ordini, è possibile impostare la proprietà Record univoci della query su . Impostando questa proprietà su , tramite la query vengono analizzate tutte le righe delle tabelle e, se vengono trovate righe corrispondenti, e non solo campi, tutte le righe duplicate tranne una vengono escluse dal set di risultati.

Impostare la proprietà Record univoci su Sì

  1. Dopo avere aperto la query 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

Ricordarsi che quando la proprietà Record univoci è impostata su , tramite la query vengono confrontate intere righe e, affinché i dati vengano esclusi, le righe di tutte le tabelle coinvolte devono coincidere. L'impostazione della proprietà Record univoci, inoltre, può essere utilizzata solo quando una query include due o più tabelle.

Passando in visualizzazione Foglio dati, verrà visualizzato un solo record per ogni ordine.

Un record per ordine della tabella Ordini

Ricordarsi inoltre che quando si imposta la proprietà Record univoci su e si esegue la query, potrebbero venire visualizzati ancora record che sembrano duplicati. Per continuare con l'esempio precedente, potrebbero venire visualizzati record con date di ordine e di spedizione corrispondenti, come illustrato di seguito:

La vista include ancora record duplicati

Questo accade quando si ricevono due ordini nello stesso giorno e li si spediscono nello stesso giorno. Impostando la proprietà Record univoci su , questi record non vengono nascosti nei risultati della query in quanto in realtà i record non sono duplicati nelle tabelle sottostanti.

Se si desidera visualizzare una sola istanza di tali record, ovvero un record per giorno, è necessario impostare la proprietà Valori univoci della query su . Quando la proprietà Valori univoci è impostata su , tramite la query non vengono analizzate le tabelle sottostanti per la ricerca di duplicati, ma vengono analizzati i valori dei campi inclusi e, se tutti i campi di due record corrispondono, un record viene nascosto.

Il valore della proprietà Valori univoci può essere impostato seguendo la stessa procedura utilizzata per impostare la proprietà Record univoci, ovvero visualizzando la finestra delle proprietà della query e modificando l'impostazione in . Nella finestra delle proprietà la casella relativa alla proprietà Valori univoci si trova sopra a quella relativa alla proprietà Record univoci.

Proprietà Valori univoci impostata su Sì

Per continuare con l'esempio precedente, a questo punto verranno visualizzate solo le date in cui sono stati ricevuti o spediti uno o più ordini. Non verrà visualizzato un record per ogni ordine.

Date di ricezione e spedizione degli ordini

 Nota   Poiché l'impostazione della proprietà Record univoci su agisce sulle righe delle tabelle i cui dati vengono utilizzati dalla query, mentre l'impostazione della proprietà Valori univoci su agisce solo sui campi della query, non è possibile utilizzare entrambe le proprietà contemporaneamente. Se si imposta una proprietà su , l'altra proprietà viene impostata automaticamente su No. È tuttavia possibile impostare entrambe le proprietà su No per restituire tutti i record.

Nella tabella seguente è disponibile un riepilogo utile per scegliere le impostazioni delle proprietà Record univoci e Valori univoci in una query.

Elementi su cui è basata la query Dati che si desidera visualizzare Impostazione Risultato
Due o più tabelle, ma tutti i campi della query provengono da un'unica tabella Record diversi della tabella (affinché due record vengano considerati duplicati, tutti i campi della tabella devono corrispondere) Impostare la proprietà Record univoci su . La proprietà Valori univoci verrà automaticamente impostata su No. Se la tabella contiene record duplicati, questi vengono ignorati dalla query. Nei risultati della query possono tuttavia essere presenti 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 diversi in visualizzazione Foglio dati della query (affinché due record vengano considerati duplicati, tutti i campi della visualizzazione Foglio dati devono corrispondere) Impostare la proprietà Valori univoci su . La proprietà Record univoci verrà automaticamente impostata su No. Tramite la query verranno esclusi i record duplicati, in cui tutti i campi corrispondono, in visualizzazione Foglio dati. Ricordarsi, tuttavia, che potrebbero non venire visualizzati tutti i record diversi della tabella sottostante.
Una o più tabelle Tutti i record Impostare la proprietà Valori univoci su No e la proprietà 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 nelle tabelle correlate

Quando si visualizzano i dati duplicati nelle tabelle correlate, potrebbe essere necessario visualizzare un record specifico di un set di duplicati oppure riepilogare i dati duplicati utilizzando la funzione Conteggio, Somma o una delle altre funzioni di aggregazione.

Analogamente a quanto descritto per lo scenario della sezione precedente, potrebbero non essere presenti nelle tabelle record effettivamente duplicati, ma quando si visualizzano i dati di due o più tabelle che condividono una relazione uno-a-molti, ad esempio le tabelle Ordini e Dettagli ordini, potrebbero essere presenti diversi record in cui più campi corrispondono. Un dipendente potrebbe, ad esempio, aver ricevuto più ordini dallo stesso cliente oppure aver venduto lo stesso prodotto in ordini diversi nello stesso giorno e così via. Se si desidera trovare dati che rispondano a query simili alle seguenti, è necessario riepilogare i dati anziché eliminare i dati 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 con dimensioni maggiori per ogni dipendente.

Per riepilogare i dati, utilizzare una query di totalizzazione simile a quelle illustrate nella sezione Visualizzare record distinti specificando quali duplicati vengono inclusi nei risultati, più indietro in questo articolo. In tale sezione viene illustrato come utilizzare query di totalizzazione con una singola tabella. Per creare query di totalizzazione contenenti più tabelle, eseguire le operazioni seguenti:

  • Quando si aggiunge la prima tabella tramite la finestra di dialogo Mostra tabella, ricordarsi di aggiungere anche la seconda tabella.
  • Quando si aggiungono i campi che determinano la duplicazione, trascinare i campi desiderati di entrambe le tabelle e, per tutti i campi, impostare il valore della riga Formula della colonna su Raggruppamento.
  • Il campo che identifica il record che si desidera visualizzare o che include i valori che si desidera riepilogare può appartenere a una qualsiasi delle tabelle.

Inizio della sezione


Torna all'inizio Torna all'inizio

 
 
Si applica a:
Access 2007