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