Funzione DAvg

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

È possibile usare la funzione DAvg per calcolare la media di un set di valori in un set di record specificato, ovvero un dominio. Usare la funzione DAvg in un modulo Visual Basic, Applications Edition (VBA), in una macro, in un'espressione di query o in un controllo calcolato.

Ad esempio, è possibile usare la funzione DAvg nella riga dei criteri di una query di selezione sul costo di carico per limitare i risultati ai record in cui il costo di carico supera la media. In alternativa, è possibile usare un'espressione che includa la funzione DAvg in un controllo calcolato e visualizzare il valore medio degli ordini precedenti accanto al valore di un nuovo ordine.

Sintassi

DAvg(expr, domain [, criteria] )

La sintassi della funzione DAvg ha gli argomenti seguenti:

Argomento Descrizione
espressione Obbligatorio. Espressione che identifica il campo contenente i dati numerici di cui si vuole calcolare la media. Può trattarsi di un'espressione stringa che identifica un campo in una tabella o query oppure può essere un'espressione che esegue un calcolo sui dati contenuti in quel campo. In espressione è possibile includere il nome di un campo in una tabella, un controllo in una maschera, una costante o una funzione. Se espressione include una funzione, questa può essere incorporata o definita dall'utente, ma non un'altra funzione di aggregazione di dominio o di aggregazione SQL.
dominio Obbligatorio. Un'espressione di stringa che identifica il set di record che costituisce il dominio. Può essere un nome di una tabella o di una query che non richiede un parametro.
criteri Facoltativo. Espressione stringa utilizzata per limitare l'intervallo di dati in cui viene eseguita la funzione DAvg . Ad esempio, criteri è spesso equivalente alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteria viene omesso, la funzione DAvg valuta expr rispetto all'intero dominio. Qualsiasi campo incluso nei criteri deve essere anche un campo nel dominio; in caso contrario, la funzione DAvg restituisce un valore Null.

    

Osservazioni

I record che contengono valori Null non sono inclusi nel calcolo della media.

Indipendentemente dal fatto che si utilizzi la funzione DAvg in una macro o in un modulo, in un'espressione di query o in un controllo calcolato, è necessario costruire l'argomento criteri con attenzione per assicurarsi che venga valutato correttamente.

È possibile usare la funzione DAvg per specificare criteri nella riga Criteri di una query. Ad esempio, si supponga di voler visualizzare un elenco di tutti i prodotti ordinati in quantità superiori alla quantità media. È possibile creare una query sulle tabelle degli ordini, dei dettagli degli ordini e dei prodotti e includere il campo del nome prodotto e il campo della quantità, con l'espressione seguente nella riga Criteri sotto il campo della quantità:

>DAvg("[Quantity]", "Orders")

È anche possibile utilizzare la funzione DAvg all'interno di un'espressione di campo calcolato in una query o nella riga Aggiorna a di una query di aggiornamento.

Nota

È possibile usare la funzione DAvg o Avg in un'espressione di campo calcolato in una query di totalizzazione. Se si usa la funzione DAvg, la media dei valori viene calcolata prima del raggruppamento dei dati. Se si usa la funzione Avg, i dati vengono raggruppati prima del calcolo della media nell'espressione del campo.

Usare la funzione DAvg in un controllo calcolato quando è necessario specificare criteri per limitare l'intervallo di dati su cui viene eseguita la funzione DAvg. Ad esempio, per visualizzare il costo di carico medio per le spedizioni inviate in California, impostare la proprietà .OrigineControllo di una casella di testo sull'espressione seguente:

=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")

Se si vuole semplicemente calcolare la media di tutti i record nel dominio, usare la funzione Avg .

È possibile usare la funzione DAvg in un modulo o una macro o in un controllo calcolato in una maschera se un campo che deve essere visualizzato non è incluso nell'origine del record su cui è basata la maschera. Si supponga, ad esempio, di avere una maschera basata sulla tabella degli ordini e di voler includere il campo della quantità dalla tabella dei dettagli degli ordini per visualizzare il numero medio di articoli ordinati da un cliente specifico. È possibile usare la funzione DAvg per eseguire questo calcolo e visualizzare i dati nella maschera.

Suggerimenti

  • Se si usa la funzione DAvg in un controllo calcolato, si potrebbe voler posizionare il controllo nell'intestazione o nel piè di pagina della maschera, in modo che il valore per il controllo non venga ricalcolato ogni volta che si passa a un nuovo record.
  • Se il tipo di dati del campo da cui viene derivata espressione è un numero, la funzione DAvg restituisce un tipo di dati Double. Se si usa la funzione DAvg in un controllo calcolato, includere una funzione di conversione tra tipi di dati nell'espressione per migliorare le prestazioni.
  • Anche se è possibile usare la funzione DAvg per determinare la media dei valori di un campo di una tabella esterna, può essere più efficiente creare una query contenente tutti i campi necessari e quindi basare la maschera o il report su tale query.

Nota

Le modifiche non salvate ai record nel dominio non vengono incluse quando si usa questa funzione. Se si vuole che la funzione DAvg sia basata sui valori modificati, è necessario salvare prima le modifiche facendo clic su Salva il record in Record nella scheda Dati, spostando lo stato attivo su un altro record oppure usando il metodo Update.

Esempio

Nota

Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.

La funzione seguente restituisce il costo di carico medio per gli ordini spediti in o dopo una data specifica. Il dominio è rappresentato da una tabella degli ordini. L'argomento criteri consente di limitare il set di record risultante in base al paese o all'area geografica e alla data di spedizione specificati. Si noti che la parola chiave AND è inclusa nella stringa per separare i molteplici campi nell'argomento criteri . Tutti i record inclusi nel calcolo della funzione DAvg avranno entrambi questi criteri.

Public Function AvgFreightCost _
    (ByVal strCountryRegion As String, _
     ByVal dteShipDate As Date) As Double
    AvgFreightCost = DAvg("[Freight]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function

Per chiamare la funzione, usare la riga di codice seguente nella finestra Immediata:

:AvgFreightCost "UK", #1/1/96#