È 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ò essere un'espressione stringa che identifica un campo in una tabella o in una query oppure un'espressione che esegue un calcolo sui dati di questo campo. In espr è possibile includere il nome di un campo di una tabella, un controllo di una maschera, una costante o una funzione. Se espr include una funzione, questa può essere una funzione predefinita o definita dall'utente, ma non un'altra funzione di aggregazione sui domini o una funzione 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 equivale spesso 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. Benché l'argomento espr possa eseguire un calcolo su 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 consegnare in California, impostare la proprietà .OrigineControllo 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.
Suggerimento La funzione Count è stata ottimizzata per accelerare 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 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é questo non conterrà mai un valore Null.
Se espr identifica più campi, separare i nomi dei campi con un operatore di concatenazione, ovvero 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 apportate 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 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.
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#