SQL: 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

Come si fa una query di accodamento?

Il processo di creazione di una query di accodamento è costituito dai passaggi di base seguenti:

  1. Creare una query di selezione.
  2. Convertire la query di selezione in una query di accodamento.
  3. Scegliere i campi di destinazione per ogni colonna nella query di accodamento.
  4. Eseguire la query per accodare i record.

Una query di accodamento consente di aggiungere un set di record, o righe, da una o più tabelle di origine, o query, a una o più tabelle di destinazione. Benché non sia necessario, in genere le tabelle di origine e di destinazione risiedono nello stesso database.

Si supponga, ad esempio, di acquisire nuovi clienti e un database contenente una tabella di informazioni relative a tali clienti. Per evitare l’immissione manuale dei nuovi dati, è possibile accodarli alla tabella appropriata nel database. È inoltre possibile utilizzare query di accodamento per eseguire le operazioni seguenti:


Accodare campi basati su criteri. È possibile, ad esempio, accodare solo i nomi e gli indirizzi di clienti con ordini di rilievo.


Accodare record se alcuni dei campi di una tabella non sono presenti in un’altra tabella.

Si supponga, ad esempio, che la tabella Clienti contenga undici campi e che solo nove dei campi della tabella Acquirenti di un altro database corrispondano agli undici campi. Sarà possibile utilizzare una query di accodamento per aggiungere solo i dati inclusi nei campi che corrispondono e ignorare gli altri.


Tenere presente che non è possibile utilizzare query di accodamento per modificare i dati di singoli campi in record esistenti. Per eseguire un’operazione di questo tipo, è necessario utilizzare una query di aggiornamento. È possibile utilizzare query di accodamento solo per aggiungere righe di dati.

Creare ed eseguire una query di accodamento


Il processo di creazione di una query di accodamento è costituito dai passaggi di base seguenti:


-Creare una query di selezione.
-Convertire la query di selezione in una query di accodamento.
-Scegliere i campi di destinazione per ogni colonna nella query di accodamento.


Eseguire la query per accodare i record.


NOTA

È consigliabile procedere con cautela, in quanto non è possibile annullare i risultati di una query di accodamento. Ricordare inoltre che i tipi di dati impostati per i campi della tabella di origine devono essere compatibili con quelli impostati per i campi della tabella di destinazione. È possibile, ad esempio, accodare numeri a un campo di tipo Testo, ma non è possibile accodare testo a un campo di tipo Numerico, a meno che non si utilizzi un’espressione, ad esempio (Val(CampoTesto)), per convertire innanzitutto i dati nel tipo di dati Numerico.

Creare una query di selezione


Aprire il database contenente i record che si desidera accodare.
Nel gruppo Altro della scheda Crea fare clic su Struttura query.
Verranno visualizzati Progettazione query e la finestra di dialogo Mostra tabella.
Selezionare qualsiasi combinazione di tabelle o query contenenti i record che si desidera accodare, fare clic suAggiungi e quindi su Chiudi.
Ogni tabella o query verrà visualizzata in una finestra nella parte superiore della griglia di struttura della query. Tali finestre conterranno l’elenco di tutti i campi di ogni tabella o query.

Nella figura seguente viene illustrata una tabella tipica in Progettazione query.


Fare doppio clic sui campi che si desidera accodare. I campi selezionati verranno visualizzati nella riga Camponella griglia di struttura della query, nella parte inferiore di Progettazione query.

È possibile aggiungere un’espressione, ad esempio =Date(), per restituire automaticamente la data corrente oppure aggiungere campi di tabella o di query alle celle nella griglia di struttura. È possibile aggiungere un solo campo di tabella o di query per cella.


Per aggiungere tutti i campi di una tabella rapidamente, fare doppio clic sull’asterisco (*) nella parte superiore dell’elenco dei campi di tabella. Nella figura viene illustrata la griglia di struttura con tutti i campi aggiunti.

È possibile, facoltativamente, immettere uno o più criteri nella riga Criteri della griglia di struttura. ella tabella seguente sono inclusi alcuni criteri di esempio, di cui viene inoltre descritto l’effetto sui risultati di una query.
Criterio Effetto >
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 #02.02.07# And #01.12.07#
Restituisce le date dal 2 febbraio 2007 all’1 dicembre 2007, in base alla modalità ANSI-89. Se nel database vengono utilizzati caratteri jolly ANSI-92, utilizzare virgolette singole (‘) al posto dei cancelletti, ad esempio Between ‘02.02.07’ And ‘01.12.07’.
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.

02.02.07

Trova tutti i record che si riferiscono al 2 febbraio 2007.

Se nel database viene utilizzato il set di caratteri jolly ANSI-92, includere la data tra virgolette singole anziché cancelletti (#), ad esempio ‘02.02.07’.
< 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 fare clic su Esegui.
Verificare che la query abbia restituito i record che si desidera aggiornare.

Se è necessario aggiungere o rimuovere campi dalla query, tornare in visualizzazione Struttura e aggiungere i campi desiderati come indicato nel passaggio precedente oppure selezionare i campi indesiderati e quindi premere INVIO per rimuoverli dalla query.


Passare alla procedura seguente, in cui la query di selezione verrà convertita in una query di accodamento.


Convertire la query di selezione in una query di aggiornamento


-Fare clic con il pulsante destro del mouse sulla scheda documento relativa alla query di apertura e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.
-oppure-
-Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query e quindi scegliereVisualizzazione Struttura dal menu di scelta rapida.
-Nel gruppo Tipo di query della scheda Struttura fare clic su Accodamento.
Verrà visualizzata la finestra di dialogo Accodamento.
A questo punto, è possibile scegliere se accodare record da una tabella a un’altra tabella esistente nello stesso database oppure a una tabella esistente in un database diverso.

NOTA

Se si desidera copiare record in una nuova tabella, è necessario utilizzare una query di creazione tabella.
Come creare una query di creazione tabella
Seguire la procedura inclusa in questa sezione per creare una query di selezione. Modificare la query di selezione in base alle esigenze in modo che restituisca i record che si desidera inserire nella nuova tabella.
Passare in visualizzazione Struttura della query. Fare clic con il pulsante destro del mouse sulla scheda documento per la query e quindi scegliere

Visualizzazione Struttura.
-oppure-
Fare clic con il pulsante destro del mouse sulla query nel riquadro di spostamento e quindi scegliereVisualizzazione Struttura.
Nel gruppo Tipo di query della scheda Struttura fare clic su Creazione tabella.

Verrà visualizzata la finestra di dialogo Creazione tabella.
Nella casella combinata Nome tabella immettere un nome per la nuova tabella.

Eseguire una delle operazioni seguenti:
-Inserire la nuova tabella nel database aperto.
-Lasciare selezionato il pulsante di opzione Database corrente e fare clic su OK.
-Inserire la nuova tabella in un altro database.
-Selezionare Altro database.
-Immettere il percorso e il nome del file del database oppure fare clic su Sfoglia per individuare il database e quindi fare clic su OK dopo averlo selezionato.
-Nella casella combinata Nome tabella immettere un nome per la nuova tabella.
-Fare clic su OK

Dopo avere convertito la query, è necessario decidere se accodare i record a una tabella contenuta nello stesso database o in un database diverso. In base alle esigenze, utilizzare una delle due procedure seguenti:


-Accodare record a una tabella nello stesso database
-Nella finestra di dialogo Accodamento fare clic sul pulsante di opzione Database corrente, se non è già selezionato, e quindi selezionare la tabella di destinazione nella casella combinata Nome tabella.
-Fare clic su OK.

Ciò che viene visualizzato dipende dalla procedura utilizzata per creare la query di selezione. Se, ad esempio, sono stati aggiunti tutti i campi dalla tabella di origine o dalla query, verranno aggiunti tutti i campi della tabella di destinazione alla riga Accoda a nella griglia di struttura.
-oppure-

Se sono stati aggiunti singoli campi per la query e i nomi dei campi delle tabelle di origine e di destinazione corrispondono, in Access verranno automaticamente aggiunti i nomi dei campi di destinazione alla rigaAccoda a nella query.
-oppure-

Se sono stati aggiunti singoli campi e nessuno dei nomi inclusi nelle tabelle di origine e di destinazione corrisponde, tali campi verranno lasciati vuoti. È possibile fare clic su una cella nella riga Accoda a e selezionare un campo di destinazione.

NOTA Se si lascia il campo di destinazione vuoto, la query non accoderà dati al campo.

Per visualizzare in anteprima le modifiche apportate, passare in visualizzazione Foglio dati. A tale scopo, fare clic con il pulsante destro del mouse sulla scheda documento per la query e quindi scegliere

Visualizzazione Foglio dati.
-oppure-
Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query e quindi scegliereVisualizzazione Foglio dati.
Tornare in visualizzazione Struttura e quindi fare clic su Esegui per accodare i record.

Promemoria

Poiché non è possibile annullare i risultati di una query di accodamento, verificare con cautela se si desidera accodare i record.
-Accodare record a una tabella in un altro database
-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.
–oppure–
-Fare clic su Sfoglia e utilizzare la finestra Accodamento successiva per individuare il database di destinazione. Fare clic su OK dopo avere individuato e selezionato il database di destinazione.

Questa operazione provoca la chiusura della finestra di dialogo Accodamento successiva. Nella casella combinata Nome tabella nella prima finestra di dialogo Accodamento immettere il nome della tabella di destinazione e quindi fare clic su OK.


Ciò che viene visualizzato dipende dalla procedura utilizzata per creare la query di selezione. Se, ad esempio, sono stati aggiunti tutti i campi dalla tabella di origine o dalla query, verranno aggiunti tutti i campi della tabella di destinazione alla riga Accoda a nella griglia di struttura.
-oppure-
Se sono stati aggiunti singoli campi per la query e i nomi dei campi nelle tabelle di origine e di destinazione corrispondono, in Access verranno automaticamente aggiunti i nomi dei campi di destinazione alla rigaAccoda a nella query.
-oppure-
Se sono stati aggiunti singoli campi e nessuno dei nomi inclusi nelle tabelle di origine e di destinazione corrisponde, tali campi verranno 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.


Tornare in visualizzazione Struttura. A tale scopo, fare clic con il pulsante destro del mouse sulla scheda nella parte superiore della query e quindi scegliere Visualizzazione Struttura. Fare clic su Esegui per accodare i record. Quando viene richiesto di confermare l’operazione, fare clic su Sì.
Impedire il blocco di una query da parte della modalità di disattivazionePer impostazione predefinita, se si apre un database non salvato in un percorso attendibile o si è scelto di non considerare il database come attendibile, Access impedisce l’esecuzione di tutte le query di comando, ovvero delle query di accodamento, di aggiornamento, di eliminazione o di creazione tabella.


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 mssaggio seguente:
Azione o evento bloccato dalla modalità di disattivazione.

.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?