Функцию DCount можно использовать для определения числа записей, которые находятся в указанном наборе записей (домене). Используйте функцию DCount в модуле Visual Basic для приложений (VBA), макросе, выражении запроса или вычисляемом элементе управления.
Например, функцией DCount можно воспользоваться в модуле для возврата числа записей в таблице "Заказы", соответствующих заказам, которые были размещены в определенный день.
Синтаксис
DCount(expr, домен* [, условие] )
Функция DCount имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| выражение | Обязательный аргумент. Выражение, определяющее поле, для которого нужно посчитать записи. Это может быть строковое выражение, определяющее поле в таблице или запросе, или выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля таблицы, элемента управления формы, константы или функции. Если выражение выражает включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не может быть агрегатной функции по подмножеству или агрегатной функции SQL. |
| подмножество | Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
| условия | — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, с которыми выполняется функция DCount . Например, условие часто эквивалентно предложению WHERE в выражении SQL, но без слова WHERE. Если условие опущено, функция DCount вычисляет выражение для всего домена. Любое поле, включенное в условие , также должно быть полем в домене; в противном случае функция DCount возвращает значение Null. |
Замечания
Используйте функцию DCount для подсчета числа записей в подмножестве, если значения каждой из них выяснять не требуется. Хотя аргумент выражения может выполнять вычисления для поля, функция DCount просто подсчитывает количество записей. Значение любых вычислений, выполненных с помощью выражения недоступно.
Используйте функцию DCount в вычисляемом элементе управления, если нужно ограничить диапазон данных определенными условиями. Например, чтобы отобразить количество заказов, которые должны быть отправлены в Калифорнию, задайте для свойства ControlSource текстового поля следующее выражение:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите подсчитать все записи в домене без указания каких-либо ограничений, используйте функцию Count .
Совет Функция Count была оптимизирована для ускорения подсчета записей в запросах. В выражениях запросов используйте функцию Count вместо функции DCount и задавайте дополнительные условия для ограничения результатов. Если необходимо подсчитать количество записей в подмножестве из макроса, модуля кода или вычисляемого элемента управления, применяйте функцию DCount.
Функцию DCount можно использовать для подсчета записей, содержащих определенное поле, которое не принадлежит к источнику записей, на котором основана форма или отчет. Например, можно отобразить число заказов в таблице "Заказы" в вычисляемом элементе управления формы, основанной на таблице "Товары".
Функция DCount не учитывает записи со значениями Null в поле, на которое ссылается выражение (expr ), если только выражение не является подстановочным знаком, отмеченным звездочкой (*). Если этот знак используется, функция DCount подсчитывает общее число записей, включая записи, содержащие поля со значением NULL. В приведенном ниже примере вычисляется количество записей в таблице Orders.
intX = DCount("*", "Orders")
Если домен — это таблица с первичным ключом, вы также можете подсчитать общее количество записей, задав выражение полю первичного ключа, так как в поле первичного ключа никогда не будет пустого значения .
Если выражение определяет несколько полей, разделите имена полей с помощью оператора объединения, например амперсанда (&) или сложения (+). Если для разделения полей используется амперсанд, функция 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("ProductID","ProductSales","Discount=0") AS Expr1 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 для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
Следующая функция возвращает число заказов, доставленных в определенную страну или регион после указанной даты. Подмножеством является таблица "Заказы" (Orders).
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#