Za pomocą funkcji DCount można określić liczbę rekordów znajdujących się w określonym zestawie rekordów ( domena ). Użyj funkcji DCount w module języka Visual Basic for Applications (VBA), makro, wyrażeniu zapytania lub kontrolka obliczeniowa.
Można na przykład użyć funkcji DCount w module, aby zwrócić liczbę rekordów w tabeli Zamówienia odpowiadających zamówieniu złożonemu w określonym dniu.
Składnia
DCount ( wyr ., domena [, kryteria] )
W składni funkcji BD.Ile.Rekordów występują następujące argumenty:
Argument |
Opis |
wyrażenie |
Argument wymagany. Wyrażenie identyfikujące pole, dla którego mają zostać zliczone rekordy. Może to być wyrażenie tekstowe identyfikujące konkretne pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. Wyrażenie może zawierać nazwę pola w tabeli, kontrolkę formularza, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może to być funkcja wbudowana lub zdefiniowana przez użytkownika, ale z wyłączeniem funkcji agregującej domeny i funkcji agregującej języka SQL. |
domena |
Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. Może to być nazwa tabeli lub nazwa zapytania, o ile to zapytanie nie wymaga parametru. |
kryteria |
Argument opcjonalny. Wyrażenie ciągu służące do ograniczania zakresu danych, dla którego wykonywana jest funkcja DCount . Na przykład kryteria są często równoważne klauzuli WHERE w wyrażeniu SQL bez wyrazu WHERE. Jeśli argument kryteria zostanie pominięty, funkcja DCountoceni wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie. W przeciwnym razie funkcja DCount zwraca wartość Null. |
Uwagi
Funkcja DCount służy do zliczania rekordów w domenie, gdy nie trzeba znać ich konkretnych wartości. Mimo że argument wyrów może wykonywać obliczenia na polu, funkcja DCount po prostu tallies liczbę rekordów. Wartość dowolnego obliczenia wykonywanego przez wyrażenie jest niedostępna.
Funkcja BD.Ile.Rekordów w kontrolce obliczeniowej służy do określania kryteriów ograniczających zakres danych, dla którego ta funkcja jest wykonywana. Aby na przykład wyświetlić liczbę zamówień wysłanych do Kalifornii, ustaw właściwość rcecontrolSou pola tekstowego na następujące wyrażenie:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Jeśli chcesz po prostu zliczyć wszystkie rekordy w domenie bez określania żadnych ograniczeń, użyj funkcji Count .
Porada Funkcja Licznik została zoptymalizowana pod kątem szybkiego zliczania rekordów w zapytaniach. Użyj funkcji Zlicz w wyrażeniu zapytania zamiast funkcji DCount i ustaw kryteria opcjonalne, aby wymusić ograniczenia dotyczące wyników. Funkcja DCount służy do zliczania rekordów w domenie z poziomu modułu kodu lub makra albo w kontrolce obliczeniowej.
Za pomocą funkcji DCount można zliczyć rekordy zawierające określone pole, które nie znajduje się w źródle rekordów, na którym jest oparty formularz lub raport. Na przykład można wyświetlić liczbę zamówień w tabeli Zamówienia w kontrolce obliczeniowej na formularzu opartym na tabeli Produkty.
Funkcja DCount nie zlicza rekordów zawierających wartości Null w polu, do którego odwołuje się wyrażenie , chyba że wyrażenie jest symbolem wieloznacznym gwiazdki (*). W przypadku użycia gwiazdki funkcja DCount oblicza całkowitą liczbę rekordów, łącznie z rekordami zawierającymi pola Null . W poniższym przykładzie można obliczyć liczbę rekordów w tabeli Zamówienia.
intX = DCount("*", "Orders")
Jeśli domena jest tabelą z klucz podstawowy, możesz również zliczyć całkowitą liczbę rekordów , ustawiając wyrażenie na pole klucza podstawowego, ponieważ w polu klucza podstawowego nigdy nie będzie wartości Null .
Jeśli wyrażenie identyfikuje wiele pól, oddziel nazwy pól operatorem łączenia, operatorem handlowe "i" (&) lub operatorem dodawania (+). Jeśli pola zostaną rozdzielone za pomocą ciągu "i", funkcja DCount zwróci liczbę rekordów zawierających dane w dowolnym z wymienionych pól. Jeśli używasz operatora dodawania, funkcja DCount zwraca tylko liczbę rekordów zawierających dane we wszystkich wymienionych polach. W poniższym przykładzie przedstawiono efekty użycia każdego operatora z polem zawierającym dane we wszystkich rekordach (NazwaOdbiorcy) i polem, które nie zawiera żadnych danych (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Uwaga: Ampersand jest preferowanym operatorem do łączenia ciągów. Należy unikać używania operatora dodawania dla innych elementów niż dodawanie liczb, chyba że chcesz propagować wartości Null w wyrażeniu.
Niezapisane zmiany rekordów w domenie nie są uwzględniane podczas korzystania z tej funkcji. Jeśli funkcja DCount ma być oparta na zmienionych wartościach, należy najpierw zapisać zmiany, klikając pozycję Zapisz rekord w obszarze Rekordy na karcie Dane , przenosząc fokus do innego rekordu lub używając metody Update .
Przykłady zapytań
Expression |
Wyniki |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Zwraca liczbę wartości w polu "ProductID" tabeli "ProductSales", gdzie wartość "Rabat" wynosi "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Zwraca liczbę wartości w polu "IDProduktu" tabeli "SprzedażProduktu", gdzie "DateofSale" przypada dzień przed datą bieżącą. |
Przykład języka VBA
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
Poniższa funkcja zwraca liczbę zamówień wysłanych do określonego kraju/regionu po określonej dacie wysyłki. Domena to tabela Zamówienia.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Aby wywołać funkcję, w oknie bezpośrednim użyj następującego wiersza kodu:
:OrdersCount "UK", #1/1/96#