Можете да използвате функцията DCount , за да определите броя на записите, които са в зададен набор от записи (домейн). Използвайте функцията DCount в модул на Visual Basic for Applications (VBA), макрос, израз на заявка или изчисляема контрола.
Например можете да използвате функцията DCount в модул, за да върнете броя на записите в таблицата "Поръчки", които съответстват на поръчки, направени на определена дата.
Синтаксис
DCount(expr; домейн* [, критерии] )
Синтаксисът на функцията DCount има следните аргументи:
| Аргумент | Описание |
|---|---|
| израз | Задължително. Израз, който идентифицира полето, за което искате да преброите записите. Това може да бъде низов израз, идентифициращ поле в таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите името на поле в таблица, контрола на формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция. |
| domain | Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. Това може да бъде името на таблица или името на заявка за заявка, която не изисква параметър. |
| criteria | Незадължително. Низов израз, използван за ограничаване на диапазона от данни, върху които се изпълнява функцията DCount . Например критерий често е еквивалентен на клаузата WHERE в SQL израза, без думата WHERE. Ако критерият е пропуснат, функцията DCount изчислява expr спрямо целия домейн. Всяко поле, което е включено в критериите , трябва да бъде също и поле в домейн; в противен случай функцията DCount връща Null. |
Забележки
Използвайте функцията DCount за преброяване на записите в даден домейн, когато не е нужно да знаете конкретните им стойности. Въпреки че аргументът expr може да извършва изчисление в поле, функцията DCount просто изчислява броя на записите. Стойността на всяко изчисление, извършено от expr, не е налична.
Използвайте функцията DCount в изчисляема контрола, когато трябва да зададете критерии за ограничаване на диапазона от данни, върху които се изпълнява функцията. Например за да покажете броя на поръчките, които трябва да бъдат изпратени за Калифорния, задайте следния израз за свойството "ControlSource " на текстово поле:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Ако просто искате да преброите всички записи в домейна , без да задавате ограничения, използвайте функцията Count .
Съвет Функцията Count е оптимизирана за ускоряване на преброяването на записи в заявки. Използвайте функцията Count в израз на заявка вместо функцията DCount и задайте незадължителни критерии, за да наложите ограничения върху резултатите. Използвайте функцията DCount, когато трябва да преброите записите в домейн от модул с код или макрос или в изчисляема контрола.
Можете да използвате функцията DCount , за да преброите записите, съдържащи определено поле, което не е в източника на записи, на който се основава вашият формуляр или отчет. Например можете да покажете броя на поръчките в таблицата "Поръчки" в изчисляема контрола във формуляр, базиран на таблицата "Продукти".
Функцията DCount не брои записите, които съдържат стойности Null в полето, към което препраща expr, освен ако expr не е заместващият символ звездичка (*). Ако използвате звездичка, функцията DCount изчислява общия брой записи, включително тези, които съдържат полета Null . Следващият пример изчислява броя на записите в таблица "Поръчки".
intX = DCount("*", "Orders")
Ако домейн е таблица с първичен ключ, можете също да преброите общия брой записи, като зададете expr в полето за първичен ключ, тъй като в полето за първичен ключ никога няма да има Null .
Ако израз идентифицира няколко полета, разделяйте имената на полетата с оператор за конкатенация – амперсанд (&) или оператор за събиране (+). Ако използвате амперсанд за разделяне на полетата, функцията DCount връща броя на записите, съдържащи данни във всяко от изброените полета. Ако използвате оператора за събиране, функцията DCount връща само броя на записите, съдържащи данни във всички изброени полета. Следващият пример показва ефектите от всеки оператор, когато се използва с поле, което съдържа данни във всички записи (ShipName) и поле, което не съдържа данни (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Забележка
Амперсандът е предпочитаният оператор за извършване на конкатенация на низове. Трябва да избягвате използването на оператора за събиране за нищо друго, освен за числово събиране, освен ако изрично не желаете да размножавате празни стойности чрез израз.
Незаписаните промени в записите в домейна не се включват, когато използвате тази функция. Ако искате функцията DCount да се базира на променените стойности, трябва първо да запишете промените, като щракнете върху "Съхрани записа" под "Записи" в раздела "Данни", преместите фокуса към друг запис или използвате метода "Актуализация".
Примери за заявки
| Израз | Резултати |
|---|---|
| SELECT DCount("ProductID";"ProductSales";"Discount=0") AS Израз1 FROM ProductSales GROUP BY DCount("ProductID";"ProductSales";"Discount=0"); | Връща броя на стойностите в полето "ИД на продукт" на таблицата "Продажби_продукти", където стойността за "Отстъпка" е "0". |
| SELECT DCount("ProductID";"ProductSales";"DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID";"ProductSales";"DateofSale=Date()-1"); | Връща броя на стойностите в полето "ИД на продукт" на таблицата "Продажби", където "Дата на продажба" е ден преди текущата дата. |
Пример на VBA
Забележка
Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.
Функцията по-долу връща броя на поръчките, експедирани до указана страна/регион след указана дата на доставка. Домейнът е таблицата "Поръчки".
Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
За да извикате функцията, използвайте следния ред код в екрана за незабавност:
:OrdersCount "UK", #1/1/96#