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). |
Elementi da verificare prima di usare una query per eliminare i dati
-
Verificare che il file non sia di sola lettura:
-
Fare clic con il pulsante destro del mouse su Start e scegliere Apri Esplora risorse.
-
Fare clic con il pulsante destro del mouse sul file di database e scegliere Proprietà.
-
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
-
Fare clic sulla scheda File > Apri.
-
Individuare e selezionare il database, fare clic sulla freccia accanto al pulsante Apri e quindi fare clic su Apertura esclusiva.
Eseguire il backup del database
-
Fare clic sulla scheda File e scegliere Salva con nome.
-
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.
-
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.
-
Nella scheda Progettazione fare clic su Visualizza > Visualizzazione Foglio dati.
-
Verificare che la query restituisca i record da eliminare e quindi premere CTRL+S per salvare la query.
-
Per eseguire la query, fare doppio clic sulla query nel riquadro di spostamento.
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.
-
Fare clic sulla scheda Crea e quindi nel gruppo Query fare clic su Struttura query.
-
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.
-
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.
-
Fare clic su Visualizza nel gruppo Risultati della scheda Struttura e quindi fare clic su Visualizzazione Foglio dati.
-
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 ("").
-
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.
-
Per eseguire la query, fare doppio clic sulla query nel riquadro di spostamento.
Altre informazioni
Modificare la relazione
Seguire questa procedura solo quando è necessario eliminare i dati sui lati "uno" e "molti" di una relazione.
-
Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.
-
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.
-
Nella finestra di dialogo Modifica relazioni verificare che la casella di controllo Applica integrità referenziale sia selezionata.
-
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.
-
Fare clic su OK, chiudere il riquadro Relazioni e quindi passare al set di passaggi successivo.
Eliminare una relazione
-
Se non è già stato fatto, aprire il riquadro Relazioni .
-
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.
-
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.
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 (""). |
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 Sì.
-
Aprire la query di eliminazione nella visualizzazione Struttura.
-
Se la finestra delle proprietà della query non è aperta, premere F4 per aprirla.
-
Fare clic in Progettazione query per visualizzare le proprietà della query e non le proprietà dei campi.
-
Nella finestra delle proprietà della query individuare la proprietà Record univoci e impostarla su Sì.
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.