Questo articolo spiega come creare ed eseguire una query di accodamento. Una query di accodamento si usa quando è necessario aggiungere nuovi record a una tabella esistente usando dati da altre origini.
Se è necessario modificare i dati in un set di record esistente, ad esempio aggiornare il valore di un campo, è possibile usare una query di aggiornamento. Si può invece usare una query di creazione tabella per creare una nuova tabella da una selezione di dati oppure per unire due tabelle in un'unica tabella. Per altre informazioni sulle query di aggiornamento o di creazione tabella oppure per informazioni generali su altri metodi per aggiungere record a un database o modificare i dati esistenti, vedere la sezione Vedere anche.
Contenuto dell'articolo
Panoramica
Una query di accodamento consente di selezionare record da una o più origini dati e di copiare i record selezionati in una tabella esistente.
Si supponga ad esempio di acquisire un database contenente una tabella dei potenziali nuovi clienti e che nel database attualmente usato per l'archiviazione di questo tipo di dati sia già presente una tabella. Si vogliono archiviare i dati in un'unica posizione, quindi si decide di copiarli dal nuovo database nella tabella esistente. Per evitare di immettere manualmente i nuovi dati, è possibile copiare i record usando una query di accodamento.
Vantaggi dell'uso di una query di accodamento
L'uso di una query per la copia dei dati consente di:
-
Accodare più record in un solo passaggio Se i dati vengono copiati manualmente, è in genere necessario eseguire più operazioni di copia e incolla. Se invece si usa una query, tutti i dati vengono selezionati e quindi copiati contemporaneamente.
-
Verificare le selezioni prima di copiarle È possibile verificare la selezione effettuata in visualizzazione Foglio dati e apportare eventuali modifiche necessarie prima di copiare i dati. Questo può risultare particolarmente comodo se la query include criteri o espressioni e occorrono diversi tentativi prima di ottenere il risultato desiderato. Non è possibile annullare una query di accodamento. In caso di errore è necessario ripristinare il database da un backup o correggere l'errore, manualmente oppure tramite una query di eliminazione.
-
Usare criteri per perfezionare la selezione È ad esempio possibile accodare solo i record dei clienti che vivono nella propria città.
-
Accodare record quando alcuni dei campi delle origini dati non sono presenti nella tabella di destinazione Supponiamo ad esempio che la tabella Clienti esistente contenga 11 campi e che la nuova tabella da cui copiare i dati contenga solo nove di tali 11 campi. È possibile usare una query di accodamento per copiare i dati dai nove campi corrispondenti e lasciare vuoti gli altri due campi.
Passaggi di base di una query di accodamento
Il processo di creazione di una query di accodamento è costituito dai passaggi di base seguenti:
-
Creare una query di selezione Per iniziare, selezionare i dati da copiare. È possibile modificare la query di selezione in base alle esigenze ed eseguirla il numero di volte necessario per essere certi di selezionare i dati da copiare.
-
Convertire la query di selezione in una query di accodamento Dopo aver effettuato la selezione, cambiare il tipo di query in Accodamento.
-
Scegliere i campi di destinazione per ogni colonna nella query di accodamento In alcuni casi i campi di destinazione vengono selezionati automaticamente. È possibile modificare i campi di destinazione o selezionarli se non sono stati selezionati automaticamente.
-
Visualizzare l'anteprima ed eseguire la query per accodare i record Prima di accodare i record è possibile passare alla visualizzazione Foglio dati per visualizzare un'anteprima dei record accodati.
Importante: Non è possibile annullare una query di accodamento. È consigliabile eseguire il backup del database o della tabella di destinazione.
Creare ed eseguire una query di accodamento
In questa sezione
Passaggio 1: Creare una query per selezionare i record da copiare
-
Aprire il database contenente i record da copiare.
-
Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Fare doppio clic sulle tabelle o sulle query contenenti i record che si desidera copiare e quindi fare clic su Chiudi.
Ogni tabella o query verrà visualizzata in una finestra in Progettazione query. Ogni finestra conterrà l'elenco dei campi di una tabella o query. Nella figura seguente viene illustrata una tabella tipica in Progettazione query.
1. Tabella Risorse visualizzata in Progettazione query
2. Griglia di struttura della query
-
Fare doppio clic su ogni campo che si vuole aggiungere. I campi selezionati verranno visualizzati nella riga Campo nella griglia di struttura della query.
I tipi di dati dei campi della tabella di origine devono essere compatibili con quelli dei campi della tabella di destinazione. I campi di tipo Testo sono compatibili con la maggior parte degli altri tipi di campi. I campi di tipo Numerico sono compatibili solo con altri campi dello stesso tipo. Ad esempio, è possibile accodare numeri a un campo di tipo Testo ma non accodare testo in un campo di tipo Numerico.
Si può anche usare come campo un'espressione, ad esempio =Data() per restituire automaticamente la data odierna, oltre a usare espressioni con campi di tabella o di query nella griglia di struttura per personalizzare i dati selezionati. Ad esempio, se la tabella di destinazione contiene un campo in cui è memorizzato un anno di quattro cifre e la tabella di origine ha un campo di data/ora normale, è possibile usare la funzione DatePart con il campo di origine per selezionare solo l'anno.
Per aggiungere tutti i campi di una tabella rapidamente, fare doppio clic sull'asterisco (*) nella parte superiore dell'elenco dei campi di tabella. Questa figura illustra la griglia di struttura con tutti i campi aggiunti.
-
Se si vuole, è possibile immettere uno o più criteri nella riga Criteri della griglia di struttura. La tabella seguente elenca alcuni criteri di esempio e ne descrive l'effetto su una query.
Criteri
Effetto
> 234
Restituisce tutti i numeri maggiori di 234. Per trovare tutti i numeri minori di 234, utilizzare < 234.
>= "Dellamore"
Restituisce tutti i record da Dellamore alla fine dell'alfabeto.
Between #2/2/2017# And #1/12/2017#
Restituisce le date dal 2 febbraio 17 all'1 dicembre 17 (ANSI-89). Se nel database vengono utilizzati caratteri jolly ANSI-92, usare virgolette singole (') al posto dei cancelletto. Esempio: Between '2/2/2017' and '12/1/2017'.
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 lettere da A a D. Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare 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 (indicato dal punto interrogativo). Se nel database viene utilizzato il set di caratteri jolly ANSI-92, utilizzare il carattere di sottolineatura (_) al posto del punto interrogativo.
#2/2/2017#
Trova tutti i record che si riferiscono al 2 febbraio 2017. Se il database usa il set di caratteri jolly ANSI-92, racchiudere la data tra virgolette singole anziché cancelletto (#). Esempio: '2/2/2017'.
< Date( ) - 30
Restituisce tutte le date trascorse da oltre 30 giorni.
Date( )
Restituisce tutti i record contenenti la data corrente.
Between Date( ) And DateAdd("M", 3, Date( ))
Restituisce tutti i record compresi tra la data corrente e i tre mesi successivi.
Is Null
Restituisce tutti i record contenenti un valore Null, ovvero vuoto o non definito.
Is Not Null
Restituisce tutti i record che contengono un valore.
""
Restituisce tutti i record che contengono una stringa di lunghezza zero. Le stringhe di lunghezza zero vengono utilizzate quando è necessario aggiungere un valore a un campo obbligatorio, ma non si conosce ancora il valore. 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, immettere una coppia di virgolette doppie senza spazi inclusi ("") al posto del numero di fax.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui .
-
Verificare che la query restituisca i record da copiare. Se è necessario aggiungere o rimuovere campi dalla query, tornare in visualizzazione Struttura e aggiungere i campi come indicato nel passaggio precedente oppure selezionare i campi indesiderati e quindi premere CANC per rimuoverli dalla query.
Passaggio 2: Convertire la query di selezione in una query di accodamento
-
Nel gruppo Visualizzazione della scheda Home fare clic su Visualizza e quindi su Visualizzazione Struttura.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su Accoda.
Viene visualizzata la finestra di dialogo Accodamento.
-
Specificare quindi se accodare record a una tabella nel database corrente oppure a una tabella in un database diverso.
Eseguire una delle operazioni seguenti:
-
Nella finestra di dialogo Accodamento fare clic su Database corrente, selezionare la tabella di destinazione nella casella combinata Nome tabella e quindi fare clic su OK.
-oppure-
-
Nella finestra di dialogo Accodamento fare clic su Altro database.
-
Nella casella Nome file immettere il percorso e il nome del database di destinazione.
-
Nella casella combinata Nome tabella immettere il nome della tabella di destinazione e quindi fare clic su OK.
-
Passaggio 3: Selezionare i campi di destinazione
La modalità di selezione dei campi di destinazione dipende dalla modalità di creazione della query di selezione adottata nel Passaggio 1.
Se... |
In Access... |
---|---|
Sono stati aggiunti tutti i campi dalla tabella di origine o dalla query |
Tutti i campi della tabella di destinazione verranno aggiunti alla riga Accoda a nella griglia di struttura. |
Sono stati aggiunti singoli campi per la query o per le espressioni utilizzate e i nomi dei campi delle tabelle di origine e di destinazione corrispondono |
I campi di destinazione corrispondenti verranno aggiunti automaticamente alla riga Accoda a nella query. |
Sono stati aggiunti singoli campi o espressioni utilizzate e nessuno dei nomi inclusi nelle tabelle di origine e di destinazione corrisponde |
I campi corrispondenti verranno aggiunti, mentre quelli non corrispondenti verranno lasciati vuoti. |
Se i campi vengono lasciati vuoti, è possibile fare clic su una cella nella riga Accoda a e selezionare un campo di destinazione.
Nella figura viene illustrato come fare clic su una cella nella riga Accoda a e quindi selezionare un campo di destinazione.
Nota: Se si lascia il campo di destinazione vuoto, la query non accoderà dati al campo.
Passaggio 4: Visualizzare l'anteprima ed eseguire la query di accodamento
-
Per visualizzare in anteprima le modifiche apportate, passare in visualizzazione Foglio dati.
Suggerimento: Per cambiare rapidamente visualizzazione, fare clic con il pulsante destro del mouse sulla scheda nella parte superiore della query e quindi fare clic sulla visualizzazione desiderata.
-
Tornare in visualizzazione Struttura e quindi fare clic su Esegui per accodare i record.
Nota: Durante l'esecuzione di una query che restituisce una grande quantità di dati è possibile che venga visualizzato un messaggio di errore in cui si informa che non sarà possibile annullare la query. Provare ad aumentare il limite del segmento di memoria fino a 3 MB per consentire il completamento della query.
Impedire il blocco di una query da parte della modalità di disattivazione
Se si prova a eseguire una query di accodamento 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.
Per risolvere il problema, fare clic su Abilita contenuto nella barra dei messaggi per abilitare la query.
Nota: Quando si attiva la query di accodamento, è necessario attivare anche tutto il contenuto del database.
Se la barra dei messaggi non è visualizzata, è possibile che sia nascosta. È possibile visualizzarla, a meno che non sia stata anche disabilitata. Se la barra dei messaggi è stata disabilitata, è possibile abilitarla.
Vedere anche
Creare ed eseguire una query di aggiornamento
Considerazioni sulla progettazione per l'aggiornamento dei dati