За допомогою функції DCount можна визначити кількість записів у вказаному наборі записів (домен). Використовуйте функцію DCount у модулі Visual Basic for Applications (VBA), макросі, виразі запиту або обчислюваному елементі керування.
Наприклад, ви можете використати функцію DCount у модулі, щоб повернути кількість записів у таблиці "Замовлення", які відповідають замовленням, зробленим на певну дату.
Синтаксис
DCount(expr, domain* [, criteria] )
Синтаксис функції DCount має такі аргументи:
| Аргумент | Опис |
|---|---|
| expr | Обов’язковий аргумент. Вираз, що визначає поле, для якого потрібно підрахувати записи. Це може бути рядковий вираз, який визначає поле в таблиці чи запиті, або вираз, який виконує обчислення даних у цьому полі. У виразі можна включити ім'я поля в таблицю, елемент керування у формі, константу або функцію. Якщо вираз містить функцію, її можна використовувати як вбудовану, так і визначену користувачем, але не іншу агрегатну функцію домену або агрегатну функцію SQL. |
| домен | Обов’язковий аргумент. Рядковий вираз, який визначає набір записів, щоб складають домен. Це може бути ім’я таблиці або ім’я запиту, у якого немає обов’язкових параметрів. |
| умови | — необов’язковий аргумент. Рядковий вираз, який використовується для обмеження діапазону даних, до якого застосовується функція DCount . Наприклад, умови часто еквівалентні речелю WHERE у виразі SQL без слова WHERE. Якщо аргумент criteria не вказано, функція DCount обчислює вираз для всього домену. Будь-яке поле, включене до умов , також має бути полем у домені; Інакше функція DCount повертає Null-значення. |
Примітки
Використовуйте функцію DCount, щоб підрахувати кількість записів у домені, коли не потрібно знати їхні значення. Хоча аргумент вираз може виконувати обчислення в полі, функція DCount просто підраховує кількість записів. Значення будь-якого обчислення, виконаного виразом , недоступне.
В обчислюваному елементі керування використовуйте функції DCount, коли потрібно за допомогою умов обмежити діапазон даних, до якого застосовується функція. Наприклад, щоб відобразити кількість замовлень, які буде доставлено до Каліфорнії, установіть для властивості ControlSource текстового поля такий вираз:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Якщо потрібно просто підрахувати всі записи в домені , не вказуючи жодних обмежень, скористайтеся функцією Count .
Порада Функцію Count оптимізовано для прискорення підрахунку записів у запитах. У виразі запиту замість функції DCount використовуйте функцію Count і вкажіть додаткові умови, щоб застосувати будь-які обмеження до результатів. Використовуйте функцію DCount, коли потрібно підрахувати записи в домені з модуля коду чи макросу або в обчислюваному елементі керування.
Функцію DCount можна використовувати, щоб підрахувати кількість записів із певним полем, якого немає в джерелі запису, на основі якого створено форму чи звіт. Наприклад, ви можете відобразити кількість замовлень у таблиці "Замовлення" в обчислюваному елементі керування у формі на основі таблиці "Продукти".
Функція DCount не враховує записи, які містять Null-значення в полі, на яке посилається вираз, якщо вираз не є символом узагальнення зірочки (*). Якщо використовується зірочка, функція DCount обчислює загальну кількість записів, включно з полями Null . У наведеному нижче прикладі обчислюється кількість записів у таблиці "Замовлення".
intX = DCount("*", "Orders")
Якщо домен – це таблиця з первинним ключем, можна також підрахувати загальну кількість записів, встановивши вираз у полі первинного ключа, оскільки в полі первинного ключа ніколи не відображатиметься Null-значення .
Якщо вираз вираз визначає кілька полів, розділяйте імена полів оператором об'єднання, амперсандом (&) або оператором додавання (+). Якщо ви скористаєтесь амперсандом, функція DCount поверне кількість записів, які містять дані в будь-якому з перерахованих полів. Якщо ви скористаєтесь оператором додавання, функція DCount поверне кількість лише тих записів, які містять дані в усіх перерахованих полях. У прикладі нижче показано наслідки використання кожного оператора з полем, яке містить дані в усіх записах (ShipName), і полем, яке не містить даних (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Примітка.
Щоб виконати об’єднання рядків, краще використовувати амперсанд. Оператор додавання варто використовувати, лише щоб додавати числа, хіба що ви спеціально хочете розповсюдити Null-значення у виразі.
Незбережені зміни в записах у домені не включаються під час використання цієї функції. Якщо потрібно, щоб функція DCount базвалася на змінених значеннях, спочатку потрібно зберегти зміни, натиснувши кнопку Зберегти запис у розділі Записи на вкладці Дані , перемістивши фокус до іншого запису або скориставшись методом Update .
Приклади запитів
| Вираз | Результати. |
|---|---|
| SELECT DCount("Ідентифікатор товару";"Продам_продукт";"Знижка=0") AS Вираз1 З групи збуту продуктів ЗА DCount("Ідентифікатор товару";"Збут товару";"Знижка=0"); | Повертає кількість значень у полі "Ідентифікатор товару" таблиці "Збут товару", де значення "Знижка" – "0". |
| SELECT DCount("Ідентифікатор товару";"Збут товару";"DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","Збут товару","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#