Функция DCount

Функцию DCount можно использовать для определения числа записей в указанном наборе записей (подмножестве). Она доступна в модулях Visual Basic для приложений (VBA), макросах, выражениях запросов и вычисляемых элементах управления.

Например, функцией DCount можно воспользоваться в модуле для возврата числа записей в таблице "Заказы", соответствующих заказам, которые были размещены в определенный день.

Синтаксис

DCount ( выражение , подмножество [, условия] )

Функция DCount имеет следующие аргументы:

Аргумент

Описание

выражение

Обязательный аргумент. Выражение, определяющее поле, для которого нужно посчитать записи. Это может быть строковое выражение поля в таблице или запросе либо выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля в таблице, элемента управления в форме, константы или функции. Выражение может включать в себя встроенную или пользовательскую функцию, но не другую агрегатную функцию по подмножеству или агрегатную функцию SQL.

подмножество

Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.

условия

Необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, к которому применяется функция DCount. Например, условия часто эквивалентны предложению WHERE в выражении SQL (без слова WHERE). Если условия не указаны, функция DCount применяет выражение ко всему подмножеству. Любое поле, включенное в условия, должно также входить в подмножество. В противном случае функция DCount возвращает значение NULL.


Замечания

Используйте функцию DCount для подсчета числа записей в подмножестве, если значения каждой из них выяснять не требуется. Хотя аргумент выражение может выполнять вычисления над полем, функция DCount просто подсчитывает число записей. Значение вычисления, выполненного аргументом выражение, недоступно.

Используйте функцию DCount в вычисляемом элементе управления, если нужно ограничить диапазон данных определенными условиями. Например, чтобы отобразить количество заказов для поставки в Калифорнию, укажите для свойства Данные этого поля следующее выражение:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

Чтобы просто подсчитать все записи в подмножестве без указания ограничений, используйте функцию Count.

Совет

Функция Count оптимизирована для быстрого подсчета количества записей. В выражениях запросов используйте функцию Count вместо функции DCount и задавайте дополнительные условия для ограничения результатов. Если необходимо подсчитать количество записей в подмножестве из макроса, модуля кода или вычисляемого элемента управления, применяйте функцию DCount.

Функцию DCount можно использовать для подсчета записей, содержащих определенное поле, которое не принадлежит к источнику записей, на котором основана форма или отчет. Например, можно отобразить число заказов в таблице "Заказы" в вычисляемом элементе управления формы, основанной на таблице "Товары".

Функция DCount не учитывает при подсчете записи, содержащие значения NULL в поле, на которое ссылается аргумент выражение, за исключением случая, когда вместо выражения используется подстановочный знак звездочки (*). Если этот знак используется, функция DCount подсчитывает общее число записей, включая записи, содержащие поля со значением NULL. В приведенном ниже примере вычисляется количество записей в таблице Orders.

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.

Пример

Примечание : В примерах ниже показано, как использовать эту функцию в модуле 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#

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×