Creare ed eseguire una query di eliminazione
Applies ToAccess per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Se si vuole eliminare rapidamente molti dati o eliminare regolarmente un set di dati in un database desktop di Access, una query di eliminazione o di aggiornamento può essere utile perché le query consentono di specificare criteri per trovare ed eliminare rapidamente i dati. L'uso di una query può anche essere un risparmio di tempo perché è possibile riutilizzare una query salvata.

Nota: Prima di eliminare dati o eseguire una query di eliminazione, assicurarsi di disporre di una copia di backup del database desktop di Access.

Se si vogliono eliminare solo alcuni record, non è necessaria una query. Aprire la tabella in visualizzazione Foglio dati, selezionare i campi (colonne) o i record (righe) da eliminare e quindi premere CANC.

Importante: Le informazioni contenute in questo articolo sono destinate all'uso solo con database desktop. Non è possibile usare query di eliminazione o aggiornamento nelle app Web di Access.

Contenuto dell'articolo

Scelta di un tipo di query

È possibile usare una query di aggiornamento o una query di eliminazione per eliminare dati dal database. Selezionare una query in base ai dettagli della tabella seguente:

Tipo di query

Da utilizzare

Risultati

Usare una query di eliminazione

Per rimuovere interi record (righe) da una tabella o da due tabelle correlate contemporaneamente.

Nota: Se i record si trovano sul lato "uno" di una relazione uno-a-molti, potrebbe essere necessario modificare la relazione prima di eseguire la query di eliminazione. Vedere la sezione sull'eliminazione di dati da tabelle correlate.

Le query di eliminazione consentono di rimuovere tutti i dati in ogni campo, incluso il valore chiave che rende univoco un record

Usare una query di aggiornamento

Per eliminare singoli valori di campo da una tabella.

Semplifica l'eliminazione dei valori aggiornando i valori esistenti a un valore Null( ovvero senza dati) o a una stringa di lunghezza zero (una coppia di virgolette doppie senza spazi tra di essi).

Inizio pagina

Elementi da verificare prima di usare una query per eliminare i dati

  • Verificare che il file non sia di sola lettura:

    1. Fare clic con il pulsante destro del mouse su Start e scegliere Apri Esplora risorse.

    2. Fare clic con il pulsante destro del mouse sul file di database e scegliere Proprietà.

    3. Verificare se l'attributo di sola lettura è selezionato.

  • Verificare di avere le autorizzazioni necessarie per eliminare i record dal database. In caso di dubbi, contattare l'amministratore di sistema o il progettista del database.

  • Verificare di aver abilitato il contenuto del database. Per impostazione predefinita, Access blocca tutte le query di comando ,ovvero le query di eliminazione, aggiornamento e creazione tabella, a meno che non si consideri prima attendibile il database. Per informazioni sull'attendibilità di un database, vedere la sezione Impedire che una query sia bloccata in modalità di disattivazione.

  • Chiedere ad altri utenti del database di chiudere tutte le tabelle, le maschere, le query e i report che usano i dati da eliminare. Ciò consente di evitare violazioni dei blocchi.

  • Prima di modificare o eliminare record, è consigliabile creare una copia di backup del database nel caso in cui si desideri annullare le modifiche.

Suggerimento: Se un numero elevato di utenti si connette al database, potrebbe essere necessario chiudere il database e riaprirlo in modalità esclusiva .

Per aprire un database in modalità esclusiva

  1. Fare clic sulla scheda File > Apri.

  2. Individuare e selezionare il database, fare clic sulla freccia accanto al pulsante Apri e quindi fare clic su Apertura esclusiva.

    Apertura di un file in accesso esclusivo

Eseguire il backup del database

  1. Fare clic sulla scheda File e scegliere Salva con nome.

  2. Fare clic su Salva database con nome e quindi su Backup database. Il file originale verrà chiuso in Access, verrà creato un backup e quindi il file originale verrà aperto di nuovo.

  3. Fare clic su Salva con nome , specificare un nome e un percorso per la copia di backup, quindi fare clic su Salva.

Nota: Se si usa un database di sola lettura o di sola lettura creato nella versione precedente di Access, potrebbe essere visualizzato un messaggio che indica che non è possibile creare un backup del database.

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 aprire la copia di backup rinominata in Access.

Uso di una query di eliminazione

Per creare una query di eliminazione, nel gruppo Query della scheda Crea fare clic su Struttura query. Fare doppio clic su ogni tabella da cui si vogliono eliminare i record e quindi fare clic su Chiudi.

La tabella viene visualizzata come finestra nella sezione superiore della griglia di struttura della query. Nell'elenco dei campi fare doppio clic sull'asterisco (*) per aggiungere tutti i campi della tabella alla griglia di struttura.

Uso di criteri specifici in una query di eliminazione

Importante: Usare i criteri per restituire solo i record da eliminare. In caso contrario, la query di eliminazione rimuove tutti i record della tabella.

Fare doppio clic sul campo da specificare come criterio di eliminazione, immettere uno dei criteri nella riga Criteri di Progettazione query e deselezionare la casella di controllo Mostra per ogni campo di criteri.

Esempio di quando usare questa opzione: Si supponga di voler rimuovere tutti gli ordini in sospeso per un cliente. Per trovare solo questi record, aggiungere i campi ID cliente e Data ordine alla griglia di struttura della query, quindi immettere il numero di ID del cliente e la data in cui gli ordini del cliente non sono più validi.

  1. Nella scheda Progettazione fare clic su Visualizza > Visualizzazione Foglio dati.

  2. Verificare che la query restituisca i record da eliminare e quindi premere CTRL+S per salvare la query.

  3. Per eseguire la query, fare doppio clic sulla query nel riquadro di spostamento.

Inizio pagina

Utilizzo di una query di aggiornamento

Nota: Non è possibile usare l'opzione di query di aggiornamento in un'app Web di Access.

Questa sezione illustra come usare una query di aggiornamento per eliminare singoli campi dalle tabelle. Tenere presente che l'esecuzione di una query di aggiornamento per eliminare i dati modificherà i valori esistenti in NULL o una stringa di lunghezza zero (una coppia di virgolette doppie senza spazio tra), a seconda dei criteri specificati.

  1. Fare clic sulla scheda Crea e quindi nel gruppo Query fare clic su Struttura query.

  2. Selezionare la tabella contenente i dati da eliminare (se la tabella è correlata, selezionare la tabella sul lato "uno" della relazione), fare clic su Aggiungi e quindi su Chiudi.

    La tabella viene visualizzata come finestra nella sezione superiore della griglia di struttura della query. Nella finestra sono elencati tutti i campi della tabella selezionata.

  3. Fare doppio clic sull'asterisco (*) per aggiungere tutti i campi della tabella alla griglia di struttura. L'aggiunta di tutti i campi di tabella consente alla query di eliminazione di rimuovere interi record (righe) dalla tabella.

    Facoltativamente, è possibile immettere i criteri per uno o più campi nella riga Criteri della finestra di progettazione e quindi deselezionare la casella di controllo Mostra per ogni campo criteri. Per altre informazioni sull'uso dei criteri, vedere la tabella Criteri di esempio per le query di selezione .

    Nota: Usare i criteri per restituire solo i record da modificare. In caso contrario, la query di aggiornamento imposta su NULL ogni record in ogni campo della query.

  4. Fare clic su Visualizza nel gruppo Risultati della scheda Struttura e quindi fare clic su Visualizzazione Foglio dati.

  5. Verificare che la query restituisca i record che si desidera impostare su NULL o una stringa di lunghezza zero (una coppia di virgolette doppie senza spazi tra di essi ("").

  6. Se necessario, ripetere i passaggi da 3 a 5 e modificare i campi o i criteri finché la query non restituisce solo i dati da eliminare, quindi premere CTRL+S per salvare la query.

  7. Per eseguire la query, fare doppio clic sulla query nel riquadro di spostamento.

Inizio pagina

Altre informazioni

Eliminazione di dati da tabelle correlate

Per eliminare i dati da diverse tabelle correlate, è necessario abilitare le opzioni Integrità referenziale ed Eliminazione record correlati a catena per ogni relazione. In questo modo la query può eliminare i dati dalle tabelle sui lati "uno" e "molti" della relazione. Per preparare l'eliminazione dei dati correlati, è necessario verificare quanto segue:

  • Determinare quali record si trovano sul lato "uno" della relazione e quali si trovano sul lato "molti".

  • Se è necessario eliminare record sul lato "uno" della relazione e i record correlati sul lato "molti", abilitare un set di regole denominato Integrità referenziale e abilitare le eliminazioni a catena. I passaggi di questa sezione illustrano l'integrità referenziale e come eseguire entrambe le attività.

  • Se è necessario eliminare record solo sul lato "uno" della relazione, eliminare prima di tutto la relazione e quindi i dati.

Se è necessario rimuovere i dati solo sul lato "molti" della relazione, è possibile creare ed eseguire la query di eliminazione senza dover modificare la relazione.

Per scoprire quali record si trovano sui lati "uno" e "molti" di una relazione, nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni. La scheda Relazioni visualizza le tabelle nel database e le relazioni. Ogni relazione viene rappresentata come una linea che collega le tabelle tra campi.

La figura seguente mostra una tipica relazione. La maggior parte, se non tutte, delle relazioni in un database hanno un lato "uno" e un lato "molti". Il diagramma relazione indica il lato "uno" con quello numerale (1) e il lato "molti" con il simbolo di infinito ().

Relazione tra due tabelle

Quando si eliminano record sul lato "uno" della relazione, vengono eliminati anche tutti i record correlati sul lato "molti" della relazione. Tuttavia, quando si eliminano record sul lato "molti" di una relazione, in genere non si eliminano i record sul lato "uno".

Inoltre, Access applica automaticamente un set di regole denominate integrità referenziale. Queste regole assicurano che le chiavi esterne in un database contengano i valori corretti. Una chiave esterna è una colonna i cui valori corrispondono ai valori della colonna chiave primaria di un'altra tabella.

Modificare la relazione

Seguire questa procedura solo quando è necessario eliminare i dati sui lati "uno" e "molti" di una relazione.

  1. Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.

  2. Fare clic con il pulsante destro del mouse sulla relazione (linea) che connette le tabelle coinvolte nell'operazione di eliminazione e quindi scegliere Modifica relazione dal menu di scelta rapida.

  3. Nella finestra di dialogo Modifica relazioni verificare che la casella di controllo Applica integrità referenziale sia selezionata.

  4. Selezionare la casella di controllo Elimina record correlati a catena .

    Nota: Finché non si disabilita di nuovo questa proprietà, l'eliminazione di un record sul lato "uno" della relazione eliminerà tutti i record correlati sul lato "molti" della relazione.

  5. Fare clic su OK, chiudere il riquadro Relazioni e quindi passare al set di passaggi successivo.

Eliminare una relazione

  1. Se non è già stato fatto, aprire il riquadro Relazioni .

  2. Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.

    Prendere nota dei campi coinvolti nella relazione in modo da poter ripristinare la relazione dopo l'eliminazione dei dati.

  3. Fare clic con il pulsante destro del mouse sulla relazione (linea) che collega le tabelle coinvolte nell'operazione di eliminazione e quindi scegliere Elimina dal menu di scelta rapida.

Nota: Per ripristinare la relazione, seguire i passaggi precedenti per aprire il riquadro Relazioni e quindi trascinare il campo chiave primaria dalla tabella "uno" e rilasciarlo nel campo chiave esterna della tabella "molti". Viene visualizzata la finestra di dialogo Modifica relazione . Se la vecchia relazione applica l'integrità referenziale, selezionare Applica integrità referenziale e quindi fare clic su Crea. In caso contrario, fare clic su Crea.

Inizio pagina

Criteri di esempio per le query di selezione

La tabella seguente elenca alcuni criteri di esempio che è possibile usare nelle query di selezione per assicurarsi di eliminare solo i dati da eliminare. Alcuni di questi esempi usano caratteri jolly.

Criteri

Effetto

> 234

Restituisce tutti i numeri maggiori di 234. Per trovare tutti i numeri minori di 234, utilizzare < 234.

>= "Giussano"

Restituisce tutti i record da Giussani alla fine dell'alfabeto.

Between #2/2/2010# And #12/1/2010#

Restituisce le date dal 2 febbraio 2010 all'1 dicembre 2010 (ANSI-89). Se nel database vengono usati caratteri jolly ANSI-92, usare le virgolette singole (') al posto dei cancelletto (#). Esempio: Between '2/2/2010' and '12/1/2010'.

Not "Germania"

Trova tutti i record in cui il contenuto esatto del campo non corrisponde esattamente a "Germania". Il criterio restituirà i record contenenti altri caratteri oltre a "Germania", ad esempio "Germania (euro)" o "Europa (Germania)".

Not "T*

Trova tutti i record ad eccezione di quelli che iniziano con T. Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare il simbolo di percentuale (%) al posto dell'asterisco (*).

Not "T*

Trova tutti i record che non terminano con t. Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare il simbolo di percentuale (%) al posto dell'asterisco (*).

In(Canada,Italia)

In un elenco trova tutti i record che contengono Canada o Italia.

LIKE "[A-D]*"

In un campo di testo trova tutti i record che iniziano con le lettere da A a D. Se nel database viene utilizzato il set di caratteri jolly ANSI-92, usare il simbolo di percentuale (%) al posto dell'asterisco (*).

Like "*ar*"

Trova tutti i record che includono la sequenza di lettere "ar". Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare il simbolo di percentuale (%) al posto dell'asterisco (*).

Like "Villa Dewe?"

Trova tutti i record che iniziano con "Villa" e contengono una seconda stringa di cinque lettere in cui le prime quattro lettere sono "Dewe" e l'ultima lettera è sconosciuta. Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare il carattere di sottolineatura (_) al posto del punto interrogativo (?).

#2/2/2010#

Trova tutti i record relativi al 2 febbraio 2010. Se il database usa il set di caratteri jolly ANSI-92, racchiudere la data tra virgolette singole anziché cancelletto ('2/2/2010').

< Date( ) - 30

Utilizza la funzione Date per restituire tutte le date passate da oltre 30 giorni.

Date( )

Utilizza la funzione Date per restituire tutti i record contenenti la data corrente.

Between Date( ) And DateAdd("M", 3, Date( ))

Usa le funzioni Date e DateAdd per restituire tutti i record compresi tra la data odierna e i tre mesi successivi alla data odierna.

Is Null

Restituisce tutti i record contenenti un valore Null, ovvero vuoto o non definito.

Is Not Null

Restituisce tutti i record che contengono qualsiasi valore (che non sono Null).

""

Restituisce tutti i record che contengono una stringa di lunghezza zero. Le stringhe di lunghezza zero vengono usate quando è necessario aggiungere un valore a un campo obbligatorio, ma non si conosce ancora il valore effettivo. In un campo, ad esempio, potrebbe essere necessario aggiungere un numero di fax, ma alcuni clienti potrebbero non disporre di apparecchi fax. In questo caso, invece di immettere un numero, è necessario immettere una coppia di virgolette doppie senza spazi tra di esse ("").

Inizio pagina

Suggerimenti per la risoluzione dei problemi

Cause della visualizzazione del messaggio di errore e correzione dell'errore

Se si crea una query di eliminazione usando più tabelle e la proprietà Record univoci della query è impostata su No, Access visualizza il messaggio di errore. Impossibile eliminare dalle tabelle specificate quando si esegue la query.

Per correggere l'errore, impostare la proprietà Record univoci della query su .

  1. Aprire la query di eliminazione nella visualizzazione Struttura.

  2. Se la finestra delle proprietà della query non è aperta, premere F4 per aprirla.

  3. Fare clic in Progettazione query per visualizzare le proprietà della query e non le proprietà dei campi.

  4. Nella finestra delle proprietà della query individuare la proprietà Record univoci e impostarla su .

Impedire il blocco di una query da parte della modalità di disattivazione

Per impostazione predefinita, se si apre un database desktop che non si è scelto di considerare attendibile o che non si trova in un percorso attendibile, Access blocca l'esecuzione di tutte le query di comando.

Se si tenta di eseguire una query di comando e sembra che non accada niente, verificare se sulla barra di stato di Access viene visualizzato il messaggio seguente:

Azione o evento bloccato dalla modalità di disattivazione.

Quando viene visualizzato il messaggio, eseguire il passaggio seguente per abilitare il contenuto bloccato:

  • Sulla barra dei messaggi avviso di sicurezza fare clic su Abilita contenuto ed eseguire di nuovo la query.

Inizio pagina

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.