Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

Синтаксис

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

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

Аргумент

Описание

выражение

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

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

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

условия

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

Замечания

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

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

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

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

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

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

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

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")

Примечание:  Для объединения строк предпочтительнее использовать амперсанд. Следует избегать использования оператора сложения для всех операций, кроме сложения чисел, за исключением случаев, когда действительно нужно, чтобы значение NULL распространялось на все выражение.

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

Примеры запросов

Expression

Результаты

SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0");

Возвращает количество значений в поле "ProductID" таблицы "ProductSales", где значение "Скидка" равно "0".

SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID", "ProductSales","DateofSale=Date()-1");

Возвращает количество значений в поле "ProductID" таблицы "ProductSales", где "DateofSale" — за день до текущей даты.

Пример 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#

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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