Funzione DCount

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

È possibile usare la funzione DCount per determinare il numero di record inclusi in un set di record specificato (un dominio). Usare la funzione DCount in un modulo di Visual Basic, Applications Edition (VBA), una macro, un'espressione di query o un controllo calcolato.

Ad esempio, è possibile usare la funzione DCount in un modulo per restituire il numero di record in una tabella degli ordini corrispondente agli ordini effettuati in una data specifica.

Sintassi

DCount(espr, dominio* [, criteri] )

La sintassi della funzione DCount ha gli argomenti seguenti:

Argomento Descrizione
espressione Obbligatorio. Espressione che identifica il campo di cui si vuole contare i record. Può trattarsi di un'espressione stringa che identifica un campo di una tabella o di una query oppure di un'espressione che esegue un calcolo sui dati di tale campo. In espr è possibile includere il nome di un campo in una tabella, un controllo in una maschera, una costante o una funzione. Se espr include una funzione, può essere predefinita 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 usata per limitare l'intervallo di dati su cui viene eseguita la funzione DCount. Ad esempio, criteri è spesso equivalente alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteri viene omesso, la funzione DCount valuta espr rispetto all'intero dominio. Qualsiasi campo incluso in criteri deve essere anche un campo in dominio; in caso contrario, la funzione DCount restituisce un valore Null.

Osservazioni

Usare la funzione DCount per contare il numero di record in un dominio quando non è necessario identificarne i valori specifici. Anche se l'argomento espr può eseguire un calcolo in un campo, la funzione DCount conta semplicemente il numero di record. Il valore di qualsiasi calcolo eseguito da espr non è disponibile.

Usare la funzione DCount in un controllo calcolato quando è necessario specificare criteri per limitare l'intervallo di dati su cui viene eseguita la funzione. Ad esempio, per visualizzare il numero di ordini da spedire in California, impostare la proprietà ControlSource di una casella di testo sull'espressione seguente:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

Se si vuole semplicemente contare tutti i record in dominio senza specificare alcuna limitazione, usare la funzione Count .

Mancia La funzione Count è stata ottimizzata per velocizzare il conteggio dei record nelle query. Usare la funzione Count in un'espressione di query invece della funzione DCount e impostare criteri facoltativi per applicare eventuali limitazioni ai risultati. Usare la funzione DCount quando è necessario contare i record in un dominio da un modulo di codice o una macro oppure in un controllo calcolato.

È possibile usare la funzione DCount per contare il numero di record contenenti un campo specifico che non è incluso nell'origine del record su cui si basa la maschera o il report. Ad esempio, è possibile visualizzare il numero di ordini nella tabella degli ordini in un controllo calcolato di una maschera basata sulla tabella dei prodotti.

La funzione DCount non conta i record che contengono valori Null nel campo a cui fa riferimento espr , a meno che espr non sia il carattere jolly asterisco (*). Se si usa un asterisco, la funzione DCount calcola il numero totale di record, inclusi quelli che contengono campi con valori Null. L'esempio seguente calcola il numero di record presenti nella tabella degli ordini.

intX = DCount("*", "Orders")

Se dominio è una tabella con una chiave primaria, è anche possibile contare il numero totale di record impostando espr sul campo chiave primaria, perché nel campo chiave primaria non sarà mai presente un valore Null .

Se espr identifica più campi, separare i nomi dei campi con un operatore di concatenazione, una e commerciale (&) o l'operatore addizione (+). Se si usa la e commerciale per separare i campi, la funzione DCount restituisce il numero di record che non contengono dati in alcuno dei campi elencati. Se si usa l'operatore addizione, la funzione DCount restituisce solo il numero di record che contengono dati in tutti i campi elencati. L'esempio seguente mostra gli effetti di ogni operatore se usato con un campo che contiene dati in tutti i record (ShipName) e un campo che non contiene alcun dato (ShipRegion).

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

Nota

La e commerciale è l'operatore preferito per eseguire la concatenazione di stringhe. Evitare di usare l'operatore addizione per qualsiasi altro calcolo diverso da un'addizione numerica, a meno che non si voglia propagare valori Null tramite un'espressione.

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

Esempi di query

Espressione Risultati
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); Restituisce il conteggio dei valori nel campo "IDProdotto" della tabella "VenditeProdotto" in cui il valore "Sconto" è "0".
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); Restituisce il conteggio dei valori nel campo "IDProdotto" della tabella "VenditeProdotto", dove "DateofSale" è un giorno prima della data corrente.

Esempio di VBA

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 numero di ordini spediti a un'area geografica o un paese specificato dopo la data di spedizione indicata. Il dominio è rappresentato da una tabella degli ordini.

Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer
    OrdersCount = DCount("[ShippedDate]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

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

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