L'uso di una query semplifica la visualizzazione, l'aggiunta, l'eliminazione o la modifica dei dati nel database di Access. Altri motivi per usare le query:
-
Trovare rapidamente dati specifici filtrando in base a criteri (condizioni) specifici
-
Calcolare o riepilogare i dati
-
Automatizzare le attività di gestione dei dati, ad esempio la revisione ricorrente dei dati più recenti.
Le query consentono di trovare e usare i dati
In un database ben progettato, i dati che si vogliono presentare tramite una maschera o un report sono in genere suddivisi tra più tabelle. Una query può estrarre le informazioni da varie tabelle e assemblarle per visualizzarle nella maschera o nel report. Una query può essere una richiesta di risultati dei dati dal database o un'azione sui dati oppure per entrambi. Una query può fornire una risposta a una semplice domanda, eseguire calcoli, combinare dati di tabelle diverse, aggiungere, modificare o eliminare dati da un database. Poiché le query sono così versatili, esistono molti tipi di query e si crea un tipo di query in base all'attività.
Principali tipi di query |
Uso |
---|---|
Selezione |
Recuperare dati da una tabella o effettuare calcoli. |
Comando |
Aggiungere, modificare o eliminare dati. Per ogni attività esiste un tipo specifico di query di comando. |
Creare una query di selezione
Se si vogliono esaminare contemporaneamente i dati di determinati campi di una tabella o i dati di più tabelle o semplicemente visualizzare i dati in base a determinati criteri, è possibile scegliere un tipo di query di selezione. Per altre informazioni, vedere Creare una query di selezione semplice.
Esaminare i dati dei campi selezionati
Ad esempio, se il database contiene una tabella con molte informazioni sui prodotti e si vuole esaminare un elenco di prodotti e i relativi prezzi, ecco come creare una query di selezione per restituire solo i nomi dei prodotti e il rispettivo prezzo:
-
Aprire il database e nella scheda Crea fare clic su Struttura query.
-
Nella scheda Tabelle fare doppio clic sulla tabella Prodotti .
-
Nella tabella Prodotti si supponga di avere i campi Nome prodotto e Prezzo di listno. Fare doppio clic su Nome prodotto e Prezzo di listno per aggiungere questi campi alla query griglia di struttura.
-
Nella scheda Struttura query fare clic su Esegui. La query viene eseguita e visualizza un elenco di prodotti e relativi prezzi.
Esaminare contemporaneamente i dati di più tabelle correlate
Ad esempio, se si ha un database per un negozio che vende prodotti alimentari e si vogliono controllare gli ordini dei clienti che vivono in una determinata città. Si supponi che i dati relativi agli ordini e ai dati relativi ai clienti siano archiviati rispettivamente in due tabelle denominate Clienti e Ordini. Se ogni tabella ha un campo ID cliente, che costituisce la base di un relazione uno-a-molti tra le due tabelle. È possibile creare una query che restituisce gli ordini per i clienti in una determinata città, ad esempio Las Vegas, usando la procedura seguente:
-
Aprire il database. Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Nella scheda Tabelle fare doppio clic su Clienti e ordini.
Si noti la riga (denominata join) che collega il campo ID nella tabella Clienti e il campo ID cliente nella tabella Ordini. Questa linea mostra la relazione tra le due tabelle.
-
Nella tabella Clienti fare doppio clic su Società e città per aggiungere questi campi alla griglia di struttura della query.
-
Nella colonna Città della griglia di struttura della query deselezionare la casella di controllo nella riga Mostra .
-
Nella riga Criteri della colonna Città digitare Las Vegas.
Se si deseleziona la casella di controllo Mostra , la query non visualizza la città nei risultati e se si digita Las Vegas nella riga Criteri viene specificato che si vogliono visualizzare solo i record in cui il valore del campo Città è Las Vegas. In questo caso, la query restituisce solo i clienti che si trovano a Las Vegas. Non è necessario visualizzare un campo per usarlo con un criterio.
-
Nella tabella Ordini fare doppio clic su ID ordine e Data ordine per aggiungere questi campi alle due colonne successive della griglia di struttura della query.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui. Viene eseguita la query e quindi viene visualizzato un elenco di ordini per i clienti a Las Vegas.
-
Premere MAIUSC+INVIO per salvare la query.
Creare una query con parametri
Se si vogliono eseguire frequentemente varianti di una query specifica, è consigliabile usare una query con parametri. Quando si esegue una query con parametri, la query chiede di specificare i valori dei campi e quindi usa i valori specificati per creare criteri per la query.
Partendo dall'esempio precedente in cui è stata appresa la creazione di una query di selezione che restituisce gli ordini per i clienti residenti a Las Vegas, è possibile modificare la query di selezione per richiedere di specificare la città ogni volta che si esegue la query. Per seguire questa procedura, aprire il database creato nell'esempio precedente:
-
Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query denominata Ordini per città creata nella sezione precedente e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.
-
Nella riga Criteri della colonna Città nella griglia di struttura della query eliminare Las Vegas e quindi digitare [Per quale città?].
La stringa [Per quale città?] è la richiesta di parametro. Le parentesi quadre indicano che si vuole che la query richieda l'input e il testo (in questo caso , Per quale città?) è la domanda visualizzata dalla richiesta del parametro.
Nota: Nessun punto (.) né un punto esclamativo (!) può essere utilizzato come testo in una richiesta di parametro.
-
Selezionare la casella di controllo nella riga Mostra della colonna Città in modo che nei risultati della query venga visualizzata la città.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui. La query chiede di immettere un valore per City.
-
Digitare New York e quindi premere INVIO per visualizzare gli ordini per i clienti a New York.
Cosa fare se non si conoscono i valori che è possibile specificare? È possibile usare i caratteri jolly come parte del prompt:
-
Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza, quindi su Visualizzazione Struttura.
-
Nella riga Criteri della colonna Città nella griglia di struttura della query digitare Like [Per quale città?] &"*".
Nella richiesta di questo parametro, la parola chiave Like , la e commerciale (&) e l'asterisco (*) racchiusi tra virgolette consentono all'utente di digitare una combinazione di caratteri, inclusi i caratteri jolly, per restituire un'ampia varietà di risultati. Ad esempio, se l'utente digita *, la query restituisce tutte le città; se l'utente digita L, la query restituisce tutte le città che iniziano con la lettera "L;" e se l'utente digita *s*, la query restituisce tutte le città che contengono la lettera "s".
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui, quindi al prompt della query digitare Nuovo e premere INVIO.
La query viene eseguita e quindi visualizza gli ordini per i clienti di New York.
Specificare i tipi di dati del parametro
È anche possibile specificare il tipo di dati che dovrà essere accettato da un parametro. Si può impostare il tipo di dati per qualsiasi parametro, ma è particolarmente importante impostare il tipo di dati per i dati numerici, valuta o data/ora. Quando si specifica il tipo di dati che dovrà essere accettato da un parametro, gli utenti vedranno un messaggio di errore più utile qualora immettano il tipo di dati non corretto, ad esempio testo quando è prevista una valuta.
Se si imposta un parametro affinché accetti dati di testo, qualsiasi tipo di input verrà interpretato come testo e non verranno visualizzati messaggi di errore.
Per specificare il tipo di dati per i parametri in una query, usare la procedura seguente:
-
Con la query aperta in visualizzazione Struttura, nel gruppo Mostra/Nascondi della scheda Struttura query fare clic su Parametri.
-
Nella colonna Parametro della finestra di dialogo Parametri query digitare la richiesta per ogni parametro per cui si desidera specificare il tipo di dati. Assicurarsi che ogni parametro corrisponda alla richiesta che si desidera utilizzare nella riga Criteri della griglia di struttura della query.
-
Nella colonna Tipo di dati selezionare il tipo di dati per ogni parametro.
Per altre informazioni, vedere Uso dei parametri per richiedere input durante l'esecuzione di una query.
Creare una query di totalizzazione
La riga Totale in un foglio dati è molto utile, ma per le domande più complesse si usa una query di totalizzazione. Una query di totalizzazione è una query di selezione che consente di raggruppare e riepilogare i dati, ad esempio quando si vogliono visualizzare le vendite totali per prodotto. In una query di totalizzazione è possibile usare la funzione Somma ,una funzione di aggregazione, per visualizzare il totale delle vendite per prodotto.
Usare la procedura seguente per modificare la query Subtotali prodotto creata nell'esempio precedente in modo da riepilogare i subtotali del prodotto per prodotto.
-
Nella scheda Home fare clic su Visualizza > visualizzazione Struttura.
La query Subtotali prodotto si apre in visualizzazione Struttura.
-
Nel gruppo Mostra/Nascondi della scheda Struttura query fare clic su Totali.
La riga Totali viene visualizzata nella griglia di struttura della query.
Nota: Anche se hanno nomi simili, la riga Totali nella griglia di struttura e la riga Totale in un foglio dati non sono uguali:
-
È possibile raggruppare i valori per campo usando la riga Totali nella griglia di struttura.
-
È possibile aggiungere una riga Totale foglio dati ai risultati di una query di totalizzazione.
-
Quando si usa la riga Totali nella griglia di struttura, è necessario scegliere una funzione di aggregazione per ogni campo. Se non si vuole eseguire un calcolo su un campo, è possibile raggrupparlo in base al campo.
-
Nella seconda colonna della griglia di struttura, nella riga Totale , selezionare Somma nell'elenco a discesa.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui. La query viene eseguita e quindi viene visualizzato un elenco di prodotti con subtotali.
-
Premere MAIUSC+INVIO per salvare la query. Lasciare aperta la query.
Per altre informazioni, vedere Visualizzare i totali delle colonne in un foglio dati usando una riga Totali.
Eseguire calcoli in base ai dati
In genere non si usano le tabelle per archiviare valori calcolati, come i subtotali, anche se sono basati su dati nello stesso database, perché i valori calcolati possono non essere aggiornati se i valori sono basati su modifiche. Ad esempio, non è possibile archiviare l'età di un utente in una tabella, perché ogni anno è necessario aggiornare il valore. archivia invece la data di nascita della persona e quindi usi una query per calcolare l'età della persona.
Ad esempio, se hai un database per alcuni prodotti che vuoi vendere. Questo database ha una tabella denominata Dettagli ordini che contiene informazioni sui prodotti nei campi, ad esempio il prezzo di ogni prodotto e le quantità. È possibile calcolare il subtotale usando una query che moltiplica la quantità di ogni prodotto per il prezzo unitario del prodotto, moltiplica la quantità di ogni prodotto per il prezzo unitario e lo sconto per tale prodotto e quindi sottrae lo sconto totale dal prezzo unitario totale. Se il database di esempio è stato creato nell'esempio precedente, aprirlo e seguire questa procedura:
-
Nella scheda Crea fare clic su Struttura query.
-
Nella scheda Tabelle fare doppio clic su Dettagli ordine.
-
Nella tabella Dettagli ordine fare doppio clic su ID prodotto per aggiungere questo campo alla prima colonna della griglia di struttura della query.
-
Nella seconda colonna della griglia fare clic con il pulsante destro del mouse sulla riga Campo e quindi scegliere Zoom dal menu di scelta rapida.
-
Nella casella Zoom digitare o incollare il subtotale seguente: ([Quantità]*[Prezzo unitario])-([Quantità]*[Prezzo unitario]*[Sconto])
-
Fare clic su OK.
-
Nella scheda Struttura query fare clic su Esegui. La query viene eseguita e quindi viene visualizzato un elenco di prodotti e subtotali per ordine.
-
Premere CTRL+S per salvare la query e quindi assegnare alla query il nome Subtotali prodotto.
Per altre informazioni, vedere Visualizzare i totali delle colonne in un foglio dati usando una riga Totali.
Visualizzare dati riepilogati o aggregati
Quando si usano le tabelle per registrare le transazioni o archiviare dati numerici che si verificano regolarmente, è utile essere in grado di esaminare i dati aggregati, ad esempio somme o medie. In Access è possibile aggiungere una riga Totali a un foglio dati. La riga Totale è una riga nella parte inferiore del foglio dati che può visualizzare un totale parziale o un altro valore aggregato.
-
Eseguire la query Subtotali prodotto creata in precedenza e lasciare aperti i risultati in visualizzazione Foglio dati.
-
Nella scheda Home fare clic su Totali. Nella parte inferiore del foglio dati viene visualizzata una nuova riga, con la parola Totale nella prima colonna.
-
Fare clic sulla cella dell'ultima riga del foglio dati denominata Totale.
-
Fare clic sulla freccia per visualizzare le funzioni di aggregazione disponibili. Poiché la colonna contiene dati di testo, sono disponibili solo due opzioni: Nessuna e Conteggio.
-
Selezionare Conteggio. Il contenuto della cella cambia da Totale a conteggio dei valori della colonna.
-
Fare clic sulla cella adiacente (la seconda colonna). Si noti che nella cella viene visualizzata una freccia.
-
Fare clic sulla freccia e quindi su Somma. Il campo visualizza una somma dei valori di colonna.
-
Lasciare aperta la query in visualizzazione Foglio dati.
Creare una query a campi incrociati
Si supponga ora di voler esaminare i subtotali dei prodotti, ma di volerli aggregare anche per mese, in modo che ogni riga mostri i subtotali per un prodotto e ogni colonna mostri i subtotali del prodotto per un mese. Per visualizzare i subtotali per un prodotto e i subtotali per un mese, usare un query a campi incrociati.
È possibile modificare di nuovo la query Subtotali prodotto in modo che restituisca le righe dei subtotali prodotto e le colonne dei subtotali mensili.
-
Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza, quindi su Visualizzazione Struttura.
-
Nel gruppo Imposta query fare clic su Aggiungi tabelle.
-
Fare doppio clic su Ordini e quindi su Chiudi.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su A campi incrociati. Nella griglia di struttura la riga Mostra è nascosta e viene visualizzata la riga A campi incrociati .
-
Nella terza colonna della griglia di struttura fare clic con il pulsante destro del mouse sulla riga Campo e quindi scegliere Zoom dal menu di scelta rapida. Si apre la casella Zoom .
-
Nella casella Zoom digitare o incollare: Mese: "Mese " & DatePart("m", [Data ordine])
-
Fare clic su OK.
-
Nella riga A campi incrociati selezionare i valori seguenti nell'elenco a discesa: Intestazione di riga per la prima colonna, Valore per la seconda colonna e Intestazione di colonna per la terza colonna.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui. La query viene eseguita e quindi vengono visualizzati i subtotali del prodotto, aggregati per mese.
-
Premere MAIUSC+INVIO per salvare la query.
Per altre informazioni sulle query a campi incrociati, vedere Semplificare la lettura dei dati di riepilogo usando una query a campi incrociati.
Creare una query di creazione tabella
È possibile usare una query di creazione tabella per creare una nuova tabella dai dati archiviati in altre tabelle.
Si supponga, ad esempio, di voler inviare dati per gli ordini di Chicago a un business partner di Chicago che usa Access per preparare i report. Invece di inviare tutti i dati dell'ordine, si vogliono limitare i dati inviati a dati specifici di Chicago.
È possibile creare una query di selezione contenente i dati dell'ordine di Chicago e quindi usare la query di selezione per creare la nuova tabella usando la procedura seguente:
-
Aprire il database di esempio dell'esempio precedente.
Per eseguire una query di creazione tabella, potrebbe essere necessario abilitare il contenuto del database.
Nota: Se sotto la barra multifunzione viene visualizzato un messaggio relativo all'abilitazione del database, fare clic su Abilita contenuto.Se il database si trova già in un percorso attendibile, la barra dei messaggi non verrà visualizzata.
-
Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Fare doppio clic su Dettagli ordine e ordini.
-
Nella tabella Ordini fare doppio clic su ID cliente e Città spedizione per aggiungere questi campi alla griglia di struttura.
-
Nella tabella Dettagli ordine fare doppio clic su ID ordine, ID prodotto, Quantità, Prezzo unitario e Sconto per aggiungere questi campi alla griglia di struttura.
-
Nella colonna Città spedizione della griglia di struttura deselezionare la casella nella riga Mostra . Nella riga Criteri digitare 'Chicago' (includere le virgolette singole). Verificare i risultati della query prima di usarli per creare la tabella.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui.
-
Premere CTRL+S per salvare la query.
-
Nella casella Nome query digitare Query ordini di Chicago e quindi fare clic su OK.
-
Nel gruppo Visualizzazioni della scheda Home fare clic su Visualizza, quindi su Visualizzazione Struttura.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su Crea tabella.
-
Nella casella Nome tabella della finestra di dialogo Creazione tabella digitare Ordini di Chicago e quindi fare clic su OK.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui.
-
Nella finestra di dialogo di conferma fare clic su Sì e visualizzare la nuova tabella nel riquadro di spostamento.
Nota: Se è già presente una tabella con lo stesso nome specificato, Access elimina tale tabella prima di eseguire la query.
Per altre informazioni sull'uso delle query di creazione tabella, vedere Creare una query di creazione tabella.
Creare una query di accodamento
È possibile usare una query di accodamento per recuperare i dati da una o più tabelle e aggiungerne i dati a un'altra tabella.
Si supponga, ad esempio, di aver creato una tabella da condividere con un business associate di Chicago, ma che l'associazione funzioni anche con i clienti nell'area di Certificate. Si desidera aggiungere alla tabella le righe che contengono i dati dell'areao prima di condividere la tabella con l'associato. È possibile aggiungere i dati dell'area di Byte alla tabella Ordini di Chicago usando la procedura seguente:
-
Aprire la query denominata "Query ordini di Chicago" creata in precedenza in visualizzazione Struttura.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su Accoda. Si apre la finestra di dialogo Accoda .
-
Nella finestra di dialogo Accoda fare clic sulla freccia nella casella Nome tabella , selezionare Ordini di Chicago nell'elenco a discesa e quindi fare clic su OK.
-
Nella griglia di struttura, nella riga Criteri della colonna Città spedizione, eliminare 'Chicago', quindi digitare 'Dio'.
-
Nella riga Accoda a selezionare il campo appropriato per ogni colonna.
In questo esempio i valori della riga Accoda a devono corrispondere ai valori della riga Campo , ma non è necessario per il funzionamento delle query di accodamento.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui.
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.
Per altre informazioni sulle query di accodamento, vedere Aggiungere record a una tabella usando una query di accodamento.
Creare una query di aggiornamento
È possibile usare una query di aggiornamento per modificare i dati nelle tabelle e una query di aggiornamento per immettere i criteri per specificare le righe da aggiornare. Una query di aggiornamento offre l'opportunità di esaminare i dati aggiornati prima di eseguire l'aggiornamento.
Importante: Una query di comando non può essere annullata. È consigliabile eseguire un backup di tutte le tabelle da aggiornare usando una query di aggiornamento.
Nell'esempio precedente sono stati aggiunte righe alla tabella Ordini di Chicago. Nella tabella Ordini di Chicago il campo ID prodotto mostra l'ID prodotto numerico. Per rendere i dati più utili nei report, è possibile sostituire gli ID prodotto con nomi di prodotto, procedere come segue:
-
Aprire la tabella Ordini di Chicago in visualizzazione Struttura.
-
Nella riga ID prodotto modificare il tipo di dati da Numero a Testo.
-
Salvare e chiudere la tabella Ordini di Chicago.
-
Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Fare doppio clic su Ordini e prodotti diChicago.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su Aggiorna.
-
Nella griglia di struttura le righe Ordina e Mostra scompaiono e viene visualizzata la riga Aggiorna a .
-
Nella tabella Ordini di Chicago fare doppio clic su ID prodotto per aggiungere questo campo alla griglia di struttura.
-
Nella riga Aggiorna a della colonna ID prodotto nella griglia di struttura digitare o incollare quanto segue: [Prodotti].[ Nome prodotto]
Suggerimento: È possibile usare una query di aggiornamento per eliminare i valori dei campi usando una stringa vuota ("") o NULL nella riga Aggiorna a .
-
Nella riga Criteri digitare o incollare quanto segue: [ID prodotto] Like ([Prodotti].[ ID])
-
È possibile verificare quali valori verranno modificati da una query di aggiornamento visualizzando la query in visualizzazione Foglio dati.
-
Nella scheda Progettazione fare clic su Visualizza > Visualizzazione Foglio dati. La query restituisce un elenco di ID prodotto che verranno aggiornati.
-
Nella scheda Struttura query fare clic su Esegui.
Quando si apre la tabella Ordini di Chicago, si noterà che i valori numerici nel campo ID prodotto sono stati sostituiti dai nomi dei prodotti della tabella Prodotti.
Per altre informazioni sulle query di aggiornamento, vedere Creare ed eseguire una query di aggiornamento.
Creare una query di eliminazione
È possibile usare una query di eliminazione per eliminare i dati dalle tabelle e una query di eliminazione per immettere i criteri per specificare le righe da eliminare. Una query di eliminazione offre l'opportunità di esaminare le righe che verranno eliminate prima di eseguire l'eliminazione.
Si supporvi, ad esempio, che mentre ci si stava preparando a inviare la tabella Ordini di Chicago dall'esempio precedente all'associato commerciale di Chicago, si noti che alcune righe contengono un certo numero di campi vuoti. È stato deciso di rimuovere queste righe prima di inviare la tabella. È possibile aprire la tabella ed eliminare le righe manualmente, ma se le righe da eliminare sono molte e si hanno criteri chiari per le righe da eliminare, può essere utile usare una query di eliminazione.
È possibile usare una query per eliminare le righe della tabella Ordini di Chicago che non hanno un valore per ID ordine usando la procedura seguente:
-
Nella scheda Crea fare clic su Struttura query.
-
Fare doppio clic su Ordini di Chicago.
-
Nel gruppo Tipo di query della scheda Struttura query fare clic su Elimina. Nella griglia di struttura le righe Ordina e Mostra scompaiono e viene visualizzata la riga Elimina .
-
Nella tabella Ordini di Chicago fare doppio clic su ID ordine per aggiungerlo alla griglia.
-
Nella riga Criteri della colonna ID ordine della griglia di struttura digitare Is Null.
-
Nel gruppo Risultati della scheda Struttura query fare clic su Esegui.
Per altre informazioni sulle query di eliminazione, vedere Creare ed eseguire una query di eliminazione.