Migliorare la leggibilità dei dati di riepilogo usando una query a campi incrociati

Per semplificare la lettura e la comprensione dei dati di riepilogo in Access, è consigliabile usare una query a campi incrociati. Questo tipo di query consente di calcolare una somma, una media o un altro tipo di funzione di aggregazione e quindi di raggruppare i risultati in base a due set di valori, uno in verticale lungo un lato e l'altro in orizzontale lungo il lato superiore del foglio dati. Sulla barra multifunzione fare clic su Crea e quindi su Creazione guidata Query nel gruppo Query. Nella finestra di dialogo Nuova query fare doppio clic su Creazione guidata Query a campi incrociati.

Se un insieme di intestazioni contiene valori di tipo data, con la creazione guidata è possibile raggruppare i record in intervalli standard, ad esempio mesi o trimestri.

In questo articolo

Panoramica

Creare una query a campi incrociati con la Creazione guidata Query a campi incrociati

Creare una query a campi incrociati in visualizzazione Struttura

Creare una query a campi incrociati in visualizzazione SQL

Usare gli intervalli per le intestazioni

Richiedere un parametro per limitare le intestazioni di riga

Sostituire i valori Null con zero

Suggerimenti relativi alle query a campi incrociati

Nota : Le query a campi incrociati non sono disponibili nelle app Web di Access e sono supportate solo parzialmente in un database Web: non possono essere usate dagli oggetti Web.

Panoramica

Una query a campi incrociati è un tipo di query di selezione. Quando si esegue una query a campi incrociati, i risultati vengono visualizzati in un foglio dati con una struttura diversa rispetto agli altri tipi di fogli dati.

La struttura di una query a campi incrociati può facilitare la lettura dei dati rispetto a una semplice query di selezione, come illustrato nella figura seguente.

Una query di selezione e una query a campi incrociati in cui vengono visualizzati gli stessi dati

1. In questa query di selezione i dati di riepilogo vengono raggruppati in verticale per dipendente e categoria.

2. Una query a campi incrociati può visualizzare gli stessi dati, ma li raggruppa orizzontalmente e verticalmente conferendo al foglio dati un aspetto più compatto e facile da leggere.

Quando si crea una query a campi incrociati, vengono specificati i campi che contengono le intestazioni di riga, i campi che contengono le intestazioni di colonna e quelli che contengono i valori da riepilogare. Quando si specificano le intestazioni di colonna e i valori da riepilogare, è possibile utilizzare un solo campo per ogni intestazione, mentre quando si specificano le intestazioni di riga, è possibile utilizzare fino a tre campi.

Per generare intestazioni di riga e di colonna o valori da riepilogare, si può usare anche un'espressione. Per altre informazioni, vedere Funzioni di aggregazione SQL.

Diagramma di una query a campi incrociati

1. Una, due o tre colonne da questo lato contengono intestazioni di riga. I nomi dei campi utilizzati come intestazioni di riga vengono visualizzati nella riga superiore di queste colonne.

2. Le intestazioni di riga vengono visualizzate in questa posizione. Il numero di righe nel foglio dati a campi incrociati può aumentare velocemente se si utilizza più di un campo per l'intestazione di riga, in quanto vengono visualizzate tutte le combinazioni di intestazioni di riga.

3. Le colonne da questo lato contengono intestazioni di colonna e valori di riepilogo. Il nome del campo per l'intestazione di colonna non viene visualizzato nel foglio dati.

4. I valori di riepilogo vengono visualizzati in questa posizione.

Metodi per creare la query a campi incrociati

Usare la Creazione guidata Query a campi incrociati    La Creazione guidata Query a campi incrociati è, in genere, il modo più semplice e rapido per creare una query a campi incrociati. La maggior parte del lavoro viene eseguito automaticamente, ma la procedura guidata non fornisce alcune opzioni.

Questi sono i vantaggi della procedura guidata:

  • È facile da usare. Basta avviare la procedura guidata e rispondere a una serie di domande guidate.

  • Più raggruppare automaticamente le date in intervalli. Se si usa un campo che contiene dati Data/ora per le intestazioni di colonna, la procedura guidata consente anche di raggruppare le date in intervalli, ad esempio mesi o trimestri.

    Suggerimento : Se si vogliono usare i valori di un campo Data/ora nelle intestazioni di colonna, ma raggruppando le date in intervalli che la procedura guidata non fornisce, ad esempio anno fiscale o biennio, non usare la procedura guidata per creare una query. Creare invece la query a campi incrociati in visualizzazione Struttura e usare un'espressione per creare gli intervalli.

  • Può essere usata come punto di partenza. Usare la procedura guidata per creare la query a campi incrociati di base desiderata, quindi modificarla secondo le proprie esigenze in visualizzazione Struttura.

Tuttavia, con la procedura guidata non è possibile:

  • Usare più tabelle o query come origine record.

  • Usare un'espressione per creare campi.

  • Aggiungere una richiesta di parametro.

  • Specificare un elenco di valori fissi da usare come intestazioni di colonna.

    L'ultimo passaggio della procedura guidata consente di modificare la query in visualizzazione Struttura. In questo modo è possibile aggiungere elementi di struttura della query che la procedura guidata non supporta, ad esempio altre origini record.

Lavorare in visualizzazione Struttura    La visualizzazione Struttura offre un maggior controllo sulla struttura della query. Supporta le funzionalità non disponibili nella procedura guidata.

È consigliabile usare la visualizzazione Struttura per creare una query a campi incrociati se si vuole:

  • Avere un maggior controllo sul processo. La procedura guidata prende autonomamente alcune decisioni.

  • Usare più tabelle o query come origine record.

  • Aggiungere una richiesta di parametro alla query.

  • Usare espressioni come campi nella query.

  • Specificare un elenco di valori fissi da usare come intestazioni di colonna.

  • Esercitarsi con la griglia di struttura.

Scrivere una query in visualizzazione SQL    Se si preferisce, è possibile scrivere una query a campi incrociati in visualizzazione SQL. Tuttavia, con la visualizzazione SQL non si possono specificare i tipi di dati del parametro. Per usare un parametro nella query a campi incrociati, è necessario specificare il tipo di dati del parametro modificando la query in visualizzazione Struttura.

Suggerimento : Tenere presente che possono essere usati più metodi per creare una query a campi incrociati, ad esempio si può usare la procedura guidata per creare la query e quindi la visualizzazione Struttura per modificare la struttura della query.

Inizio pagina

Creare una query a campi incrociati con la Creazione guidata Query a campi incrociati

La Creazione guidata Query a campi incrociati presuppone l'uso di un'unica tabella o query come origine record per questo tipo di query. Se i dati che si vogliono includere nella query a campi incrociati non sono contenuti in un'unica tabella, iniziare creando una query di selezione che restituisca i dati desiderati. Per altre informazioni sulla creazione di una query di selezione, vedere la sezione Vedere anche.

In questo esempio viene creata una query a campi incrociati usando la tabella Prodotti del database di esempio Northwind. L'obiettivo è visualizzare il conteggio del numero di prodotti in ogni categoria per tutti i fornitori.

  1. Nel gruppo Query della scheda Crea fare clic su Creazione guidata Query. Se si usa Access 2007, fare clic su Crea > Altro > Creazione guidata Query.

    Il gruppo Query della barra multifunzione di Access visualizza due opzioni: Creazione guidata Query e Struttura query
  2. Nella finestra di dialogo Nuova query fare clic su Creazione guidata Query a campi incrociati, quindi fare clic su OK.

    Verrà avviata la Creazione guidata Query a campi incrociati.

  3. Nella prima pagina della procedura guidata scegliere la tabella o la query da usare per creare una query a campi incrociati. In questo esempio selezionare la tabella Prodotti e quindi fare clic su Avanti.

    Nella Creazione guidata Query a campi incrociati selezionare una tabella o una query.
  4. Nella pagina successiva scegliere il campo che contiene i valori da usare come intestazioni di riga. È possibile selezionare un massimo di tre campi da utilizzare come origini delle intestazioni di riga, tuttavia l'utilizzo di un numero inferiore di campi renderà più facile la lettura del foglio dati a campi incrociati. Se si sceglie di usare più di un campo per le intestazioni di riga, l'ordine in cui si scelgono i campi determinerà l'ordine predefinito con cui verranno presentati i risultati.

    In questo esempio selezionare ID fornitore.Valore e quindi fare clic sul pulsante con il simbolo >. Access visualizza il nome campo sul lato sinistro dell'anteprima della query di esempio nella parte inferiore della finestra di dialogo. Fare clic su Avanti per continuare.

    Selezionare un campo da visualizzare come intestazione di riga nella Creazione guidata Query a campi incrociati.
  5. Nella pagina successiva scegliere il campo che contiene i valori da usare come intestazioni di colonna. In generale è opportuno scegliere un campo contenente un numero limitato di valori per facilitare la lettura dei risultati. Ad esempio, è preferibile usare un campo con solo pochi valori possibili, ad esempio il sesso, rispetto a un campo che può contenere molti valori diversi, ad esempio l'età.

    Se il campo scelto per le intestazioni di colonna contiene il tipo di dati Data/ora, verrà visualizzato automaticamente un passaggio aggiuntivo che consente di specificare la modalità di raggruppamento delle date in intervalli, ad esempio mesi o trimestri.

    In questo esempio selezionare Categoria. Access visualizza i nomi di esempio delle categorie nella parte superiore dell'anteprima della query di esempio nella parte inferiore della finestra di dialogo. Fare clic su Avanti per continuare.

    Selezionare un campo da visualizzare come intestazione di riga nella Creazione guidata Query a campi incrociati.
  6. Se si sceglie un campo Data/ora per le intestazioni di colonna, nella pagina successiva della creazione guidata verrà chiesto di specificare l'intervallo da utilizzare per il raggruppamento delle date. È possibile specificare Anno, Trimestre, Mese, Data o Data/ora. Se non si sceglie un tipo di campo Data/ora per le intestazioni di colonna, questa pagina verrà ignorata.

  7. Nella pagina successiva scegliere un campo e una funzione da usare per calcolare i valori di riepilogo. Il tipo di dati del campo selezionato determina le funzioni disponibili.

    Nella stessa pagina selezionare o deselezionare la casella di controllo Includi somme di righe per includere o escludere le somme delle righe.

    Se si includono somme delle righe, nella query a campi incrociati sarà presente un'intestazione di riga aggiuntiva in cui vengono utilizzati lo stesso campo e la stessa funzione come valore di campo. L'inclusione di una somma di riga comporta l'inserimento di una colonna aggiuntiva per il riepilogo delle colonne rimanenti. Se, ad esempio, la query a campi incrociati calcola l'età media per ubicazione e sesso, con intestazioni di colonna relative al sesso, nella colonna aggiuntiva verrà calcolata l'età media per ubicazione, per entrambi i sessi.

    In questo esempio selezionare ID nella casella Campi e Conteggio nella casella Funzioni per consentire ad Access di contare il numero di prodotti in ogni intersezione di fornitore e categoria. Lasciare selezionata la casella di controllo Includi somme di righe. Access crea una colonna che somma il numero di prodotti di ogni fornitore. Fare clic su Avanti per continuare.

    Selezionare un campo e una funzione da calcolare nella Creazione guidata Query a campi incrociati.
  8. Nell'ultima pagina della procedura guidata digitare un nome per la query, quindi specificare se si vogliono visualizzare i risultati o modificare la struttura della query.

    È possibile modificare la funzione usata per produrre le somme di riga modificando la query a campi incrociati in visualizzazione Struttura.

  9. Se in questo esempio è stata usata la tabella Prodotti del database Northwind, la query a campi incrociati visualizza l'elenco dei nomi dei fornitori come righe, i nomi delle categorie dei prodotti come colonne e il conteggio dei prodotti in ogni intersezione.

    Una query a campi incrociati in visualizzazione Foglio dati con le categorie per prodotti e fornitori.

Inizio pagina

Quando si usa la visualizzazione Struttura per creare una query a campi incrociati, è possibile usare tutte origini record (tabelle e query) desiderate. Tuttavia, per mantenere una struttura semplice, è possibile creare una query di selezione che restituisca tutti i dati desiderati e quindi usare la query come unica origine record della query a campi incrociati. Per altre informazioni sulla creazione di una query di selezione, vedere la sezione Vedere anche.

Per creare una query a campi incrociati in visualizzazione Struttura, verranno utilizzate le righe Totale e Campi incrociati nella griglia di struttura per specificare i valori dei campi che costituiranno le intestazioni di colonna, quelli che costituiranno le intestazioni di riga e quelli di cui calcolare la somma, la media, il conteggio o altri totali.

Parti di una query a campi incrociati in visualizzazione Struttura

1. Le impostazioni in queste righe determinano se il campo è un'intestazione di riga o di colonna o un valore di riepilogo.

2. Questa impostazione consente di visualizzare i valori del campo come intestazioni di riga.

3. Questa impostazione consente di visualizzare i valori del campo come intestazioni di colonna.

4. Queste impostazioni generano i valori di riepilogo.

Creare la query

  1. Nel gruppo Query della scheda Crea fare clic su Struttura query. Se si usa Access 2007, fare clic su Crea > Altro > Struttura query.

    Il gruppo Query della barra multifunzione di Access visualizza due opzioni: Creazione guidata Query e Struttura query
  2. Nella finestra di dialogo Mostra tabella fare doppio clic su ogni tabella o query da usare come origine record.

    Se si usa più di un'origine record, assicurarsi che le tabelle o le query siano unite in base ai campi comuni. Per altre informazioni sul collegamento con join di tabelle e query, vedere la sezione Vedere anche.

  3. Chiudere la finestra di dialogo Mostra tabella.

  4. Nel gruppo Tipo di query della scheda Struttura fare clic su A campi incrociati.

  5. Nella finestra di struttura della query fare doppio clic su ognuno dei campi che si desidera utilizzare come origine delle intestazioni di riga. A questo scopo è possibile selezionare un massimo di tre campi.

  6. Nella griglia di struttura della query selezionare Intestazione riga nella riga Campi incrociati per ogni campo di intestazione di riga.

    È possibile immettere un'espressione nella riga Criteri per limitare i risultati relativi al campo specifico e, inoltre, utilizzare la riga Ordina per specificare l'ordinamento da applicare a un campo.

  7. Nella finestra di struttura della query fare doppio clic sul campo che si desidera utilizzare come origine delle intestazioni di colonna. A questo scopo è possibile selezionare un solo campo.

  8. Nella griglia di struttura della query selezionare Intestazione colonna nella riga Campi incrociati per il campo di intestazione di colonna.

    È possibile immettere un'espressione nella riga Criteri per limitare i risultati relativi al campo di intestazione di colonna. L'utilizzo di un'espressione criterio con il campo di intestazione di colonna non limita tuttavia il numero di colonne restituire dalla query a campi incrociati, bensì specifica quali colonne conterranno dati. Si supponga ad esempio che in un campo di intestazione di colonna siano presenti tre possibili valori: rosso, verde e blu. Se si applica il criterio ='blu' al campo di intestazione di colonna, nei risultati della query a campi incrociati continueranno a essere visualizzate una colonna per il valore rosso e una per il verde, ma solo la colonna con il valore blu conterrà dati.

    Per limitare i valori visualizzati come intestazioni di colonna, è possibile specificare un elenco di valori fissi usando la proprietà Intestazioni colonne della query. Per altre informazioni, vedere la sezione seguente.

  9. Nella finestra di struttura della query fare doppio clic sul campo che si desidera utilizzare per calcolare valori di riepilogo. A questo scopo è possibile utilizzare un solo campo.

  10. Nella riga Totale relativa al campo dei valori di riepilogo nella griglia di struttura della query selezionare una funzione di aggregazione da utilizzare per il calcolo dei valori.

  11. Nella riga Campi incrociati relativa al campo dei valori di riepilogo selezionare Valore.

    Per il campo dei valori di riepilogo non è possibile specificare criteri o un ordinamento.

  12. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Specificare valori fissi per le intestazioni di colonna

Se si desidera specificare valori fissi da utilizzare per le intestazioni di colonna, è possibile impostare le proprietà Intestazioni colonne della query.

  1. Aprire la query a campi incrociati in visualizzazione Struttura.

  2. Se la finestra delle proprietà non è visibile, premere F4 per visualizzarla.

  3. Nella finestra delle proprietà assicurarsi che l'opzione Tipo di selezione, sopra la scheda Generale, sia impostata su Proprietà query. In caso contrario fare clic in un punto vuoto nello spazio sopra la griglia di struttura della query.

  4. Nella scheda Generale della finestra delle proprietà immettere nella proprietà Intestazioni di colonna un elenco di valori delimitati da virgole che si desidera utilizzare come intestazioni di colonna.

    Alcuni caratteri, ad esempio la maggior parte dei segni di punteggiatura, non sono consentiti nelle intestazioni di colonna. Se si utilizzano questi caratteri nell'elenco di valori, ognuno di essi verrà sostituito automaticamente con un carattere di sottolineatura (_).

Sintassi SQL per una query a campi incrociati

Una query a campi incrociati viene espressa in SQL con un'istruzione TRANSFORM. L'istruzione TRANSFORM ha la sintassi seguente:

TRANSFORM funzioneagg
istruzioneselect
PIVOT campopivot [IN (valore1[, valore2[, ...]])]

L'istruzione TRANSFORM è composta dalle parti seguenti:

Parte

Descrizione

funzioneagg

Una funzione di aggregazione SQL che agisce sui dati selezionati.

istruzioneselect

Un'istruzione SELECT.

campopivot

Il campo o l'espressione da usare per creare intestazioni di colonna nel set di risultati della query.

valore1, valore2

I valori fissi usati per creare le intestazioni di colonna.

La visualizzazione SQL non limita il numero di tabelle o query che possono essere usate come origini record per una query a campi incrociati. Tuttavia, per mantenere una struttura semplice, è possibile creare una query di selezione che restituisca tutti i dati da usare nella query a campi incrociati e usarla come origine record. Per altre informazioni sulla creazione di una query di selezione, vedere la sezione Vedere anche.

  1. Nel gruppo Altro della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Fare clic su Visualizza nel gruppo Visualizzazioni della scheda Struttura e quindi fare clic su Visualizzazione SQL.

  4. Nella scheda Oggetto SQL digitare o incollare l'istruzione SQL seguente:

    TRANSFORM 
    SELECT
    FROM
    GROUP BY
    PIVOT
    ;
  5. Nella prima riga, dopo TRANSFORM, digitare un'espressione da usare per calcolare i valori di riepilogo, ad esempio Somma([Importo]).

    Se si usa più di una tabella o query come origine record, includere il nome della tabella o della query nel nome di ogni campo, ad esempio, Somma([Spese].[Importo]).

  6. Nella seconda riga, dopo SELECT, digitare un elenco di campi o di espressioni di campo da usare per le intestazioni di riga. Separare le voci dell'elenco con virgole, ad esempio [Budget].[ID_reparto], [Spese].[Tipo].

  7. Nella terza riga, dopo FROM, digitare un elenco di tabelle o query usate come origini record, ad esempio Budget, Spese.

  8. Nella quarta riga, dopo GROUP BY, digitare lo stesso elenco di campi usato nella clausola SELECT del passaggio 6.

  9. Nella quinta riga, dopo PIVOT, digitare un nome campo o un'espressione da usare per le intestazioni di colonna, ad esempio PIVOT[Budget].[Anno].

Per aggiungere un ordinamento a una query a campi incrociati in visualizzazione SQL, usare una clausola ORDER BY.

  1. Inserire una riga tra le clausole GROUP BY e PIVOT.

  2. Nella nuova riga digitare ORDER BY seguito da uno spazio.

  3. Digitare il nome campo o l'espressione in base a cui ordinare, ad esempio ORDER BY [Spese].[Classe_spesa]

    Per impostazione predefinita, una clausola ORDER BY ordina i valori in ordine crescente. Per applicare l'ordinamento decrescente, digitare DESC dopo il nome campo o l'espressione.

  4. Per ordinare in base a un altro campo o espressione, digitare una virgola e quindi l'altro nome campo o espressione. L'ordinamento viene eseguito nell'ordine con cui i campi o le espressioni vengono visualizzati nella clausola ORDER BY.

  • Alla fine della clausola PIVOT nella visualizzazione SQL della query a campi incrociati, digitare IN, seguito da un elenco di valori separato da virgole (racchiuso tra parentesi) da usare come intestazioni di colonna. Ad esempio, IN (2007, 2008, 2009, 2010) restituisce quattro intestazioni di colonna: 2007, 2008, 2009, 2010.

Se si specifica un valore fisso che non corrisponde al valore di campo del campo pivot, questo valore fisso diventa un'intestazione di colonna per una colonna vuota.

  1. Inserire una nuova riga dopo la clausola FROM in visualizzazione SQL della query a campi incrociati.

  2. Digitare WHERE seguito da un criterio di campo.

    Se si vogliono inserire altri criteri, usare gli operatori AND e OR per estendere la clausola WHERE. È anche possibile usare le parentesi per raggruppare i criteri in set logici.

A volte può essere utile raggruppare i valori di un campo in intervalli e usare gli intervalli per le intestazioni di riga e di colonna, invece di usare tutti i valori di un campo per queste intestazioni. Si supponga, ad esempio, di usare un campo "Età" per le intestazioni di colonna. Invece di usare una colonna per ogni età, è preferibile usare colonne che rappresentano gli intervalli di età.

È possibile usare la funzione IIf in un'espressione per creare intervalli da usare per le intestazioni di riga o di colonna.

Suggerimento : Se si desidera creare intervalli con un campo Data/ora, è possibile utilizzare la Creazione guidata Query a campi incrociati che consente di raggruppare le date in intervalli di Anno, Trimestre, Mese, Data o Data/ora. Se nessuno di questi intervalli corrisponde alle esigenze specifiche, si consiglia di creare la query a campi incrociati in visualizzazione Struttura, quindi di utilizzare le tecniche descritte in questa sezione per creare gli intervalli desiderati.

  1. Aprire la query a campi incrociati in visualizzazione Struttura.

  2. Nella griglia di struttura della query fare clic con il pulsante destro del mouse su una colonna vuota nella riga Campo, quindi scegliere Zoom dal menu di scelta rapida.

  3. Nella casella Zoom digitare un alias di campo seguito da due punti (:).

  4. Digitare IIf().

  5. All'interno delle parentesi che seguono IIf digitare un'espressione di confronto che definisca il primo intervallo di valori di campo.

    Si supponga ad esempio di voler creare intervalli per il campo Età e che ogni intervallo comprenda venti anni. L'espressione di confronto per il primo intervallo sarà [Età]<21.

  6. Digitare una virgola dopo l'espressione di confronto, quindi digitare un nome per l'intervallo, racchiuso tra virgolette. Il nome specificato sarà l'intestazione dei campi incrociati per i valori che rientrano nell'intervallo.

    Ad esempio, dopo [Età]<21 digitare una virgola, quindi "0-20 anni".

  7. Digitare una virgola dopo il nome dell'intervallo, al di fuori delle virgolette, quindi effettuare una delle seguenti operazioni:

    • Per creare un altro intervallo, digitare IIf(), quindi ripetere i passaggi 5, 6 e 7.

    • Per l'ultimo intervallo digitare solo il relativo nome.

      Ad esempio, un'espressione IIf annidata completa che separa un campo Età (Age) in intervalli di 20 anni (years) potrebbe essere simile alla seguente (per facilitare la lettura sono state inserite interruzioni di riga):

      IIf([Age]<21,"0-20 years",
      IIf([Age]<41,"21-40 years",
      IIf([Age]<61,"41-60 years",
      IIf([Age]<81,"61-80 years", "80+ years"))))

      Nota : Quando un'espressione viene valutata in Access, la valutazione si interrompe non appena una delle istruzioni IIf restituisce vero. Non è necessario specificare il valore minore di ogni intervallo, in quanto qualsiasi valore al di sotto del valore minore di un determinato intervallo avrà già restituito vero.

  8. Nella griglia di struttura della query selezionare Raggruppa per nella riga Totale.

  9. Nella riga Campi incrociati specificare se gli intervalli dovranno essere utilizzati come intestazioni di riga o di colonna. Tenere presente che è possibile specificare da una a tre intestazioni di riga e un'intestazione di colonna.

È possibile fare in modo che durante l'esecuzione della query a campi incrociati venga visualizzata una richiesta di input. Si supponga, ad esempio, di usare più intestazioni di riga, una delle quali si riferisce a Paese/area geografica. Anziché visualizzare sempre i dati tutti i paesi o tutte le aree geografiche, è possibile impostare la query in modo che venga richiesto un nome e che siano quindi visualizzati dati in base all'input dell'utente.

È possibile aggiungere una richiesta di parametro a qualsiasi campo di intestazione di riga.

Nota : È anche possibile aggiungere una richiesta di parametro in un campo di intestazione di colonna, ma la richiesta non limiterà le colonne visualizzate.

  1. Aprire la query a campi incrociati in visualizzazione Struttura.

  2. Nella riga Criteri, per il campo di intestazione di riga per cui si desidera richiedere l'input dell'utente, digitare il testo della domanda racchiuso tra parentesi quadre. Questo testo verrà visualizzato come richiesta durante l'esecuzione della query.

    Ad esempio, se si digita [Quale paese?] nella riga Criteri, quando viene eseguita la query verrà visualizzata una finestra di dialogo contenente la domanda "Quale paese?", una casella di input e un pulsante OK.

    Suggerimento : Se si vuole che il parametro sia più flessibile, è possibile concatenare l'espressione con caratteri jolly usando l'operatore Like. Ad esempio, invece di usare [Quale paese o area geografica?] come criterio, è possibile usare Like [Quale paese o area geografica?]&"*" per far corrispondere al parametro una gamma di input più ampia. L'uso di Like non incide sull'aspetto della richiesta di parametro.

  3. Nel gruppo Mostra/Nascondi della scheda Struttura fare clic su Parametri.

  4. Nella colonna Parametri della finestra di dialogo Parametri query immettere la stessa richiesta di parametro utilizzata nella riga Criteri. Includere le parentesi quadre, ma non i caratteri jolly concatenati o l'operatore Like.

  5. Nella colonna Tipo di dati selezionare il tipo di dati per il parametro, che dovrà corrispondere al tipo di dati del campo di intestazione di colonna.

Se il campo utilizzato per calcolare i valori di riepilogo nella query a campi incrociati contiene valori Null, questi verranno ignorati da qualsiasi funzione di aggregazione utilizzata. Per alcune funzioni di aggregazione è possibile che ciò influisca sui risultati. Ad esempio, per calcolare una media si aggiungono tutti i valori e si divide il risultato per il numero di valori. Se nel campo sono presenti valori Null, questi non saranno conteggiati nel numero dei valori.

In alcuni casi è preferibile sostituire gli eventuali valori Null con zero, in modo da consentirne il conteggio durante i calcoli di aggregazione. Per sostituire i valori Null con zero, è possibile utilizzare la funzione Nz.

Sintassi di Nz

Nz ( variante [, valsenull ] )

La sintassi della funzione Nz è composta dai seguenti argomenti:

Argomento

Descrizione

variante

Argomento obbligatorio. Una variabile del tipo di dati Variant.

valsenull

Argomento facoltativo, a meno che non venga utilizzato in una query. Un tipo di dati Variant che fornisce un valore da restituire se l'argomento variante è Null. Questo argomento consente la restituzione un valore diverso da zero o una stringa di lunghezza zero.

Nota : Se si usa la funzione Nz in un'espressione di una query senza utilizzare l'argomento valsenull, nei campi che contengono valori Null risulterà una stringa di lunghezza zero.

  1. Con la query aperta in visualizzazione Struttura, nella griglia di struttura della query fare clic con il pulsante destro del mouse sul campo Valore.

  2. Scegliere Zoom dal menu di scelta rapida.

  3. Nella casella Zoom racchiudere il nome campo o l'espressione tra parentesi, quindi digitare Nz prima delle parentesi.

  4. Digitare , 0 prima della parentesi destra.

    Ad esempio, se è stato utilizzato Nz con un campo denominato "Ore perse" per convertire i valori null in zero, l'espressione finita sarà simile alla seguente:

Nz([Hours Lost], 0)

  • Privilegiare la semplicità    Le query a campi incrociati possono diventare di difficile lettura quando il numero di combinazioni di righe aumenta. Si consiglia quindi di evitare di utilizzare più intestazioni di riga di quante siano necessarie.

  • Considerare la possibilità di creare campi incrociati per fasi    Non limitarsi al solo utilizzo di tabelle. Spesso è possibile iniziare con la creazione di una query di totalizzazione e quindi usare quella query come origine record per una query a campi incrociati.

  • Scegliere con attenzione i campi di intestazione di colonna    I fogli dati a campi incrociati sono solitamente più facili da leggere quando il numero delle intestazioni di colonna rimane relativamente limitato. Dopo avere identificato i campi che si desidera utilizzare come intestazioni, considerare la possibilità di utilizzare il campo con il minor numero di valori distinti per generare intestazioni di colonna. Ad esempio, se la query calcola un valore per età e sesso, considerare l'utilizzo del sesso per le intestazioni di colonna anziché l'età, poiché i valori per il sesso sono solitamente inferiori a quelli per l'età.

  • Usare una sottoquery in una clausola WHERE    È possibile usare una sottoquery come parte della clausola WHERE in una query a campi incrociati.

Inizio pagina

Vedere anche

Creare una query di selezione semplice

Collegare tabelle e query

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×