Метод Application.DCount (Access)
Используйте функцию DCount для определения количества записей, которые находятся в указанном наборе записей (домене).
Синтаксис
expression. DCount (expr, domain, criteria)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Expr | Обязательный | String | Выражение, идентифицирующее поле, для которого требуется подсчитать записи. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или выражение, выполняющее вычисление данных в этом поле. В expr можно включить имя поля в таблицу, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. |
Домен | Обязательный | String | Строковое выражение, идентифицирующее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса, который не требует параметра. |
Criteria | Необязательный | Variant | Необязательное строковое выражение, используемое для ограничения диапазона данных, в котором выполняется функция DCount . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условие опущено, функция DCount оценивает expr по всему домену. Любое поле, включенное в условия, также должно быть полем в домене; В противном случае функция DCount возвращает значение NULL. |
Возвращаемое значение
Variant
Примечания
Например, можно использовать функцию DCount в модуле для возврата количества записей в таблице Orders, которые соответствуют заказам, размещенным на определенную дату.
Используйте функцию DCount для подсчета количества записей в домене, если вам не нужно знать их конкретные значения. Хотя аргумент expr может выполнять вычисление для поля, функция DCount просто подсчитывает количество записей. Значение любого вычисления, выполняемого expr, недоступно.
Используйте функцию DCount в вычисляемом элементе управления, если необходимо указать критерии для ограничения диапазона данных, в котором выполняется функция. Например, чтобы отобразить количество заказов, отправляемых в Калифорнию, задайте для свойства ControlSource текстового поля следующее выражение:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите подсчитать все записи в домене без указания ограничений, используйте функцию Count . Функция Count оптимизирована для ускорения подсчета записей в запросах. Используйте функцию Count в выражении запроса вместо функции DCount и задайте необязательные условия для применения ограничений на результаты.
Используйте функцию DCount , если необходимо подсчитать записи в домене из модуля кода, макроса или в вычисляемом элементе управления.
Используйте функцию DCount для подсчета количества записей, содержащих определенное поле, которое не находится в источнике записей, на котором основана форма или отчет. Например, можно отобразить количество заказов в таблице Orders в вычисляемом элементе управления на основе таблицы Products.
Функция DCount не подсчитывает записи, содержащие значения NULL в поле, на которое ссылается expr , если expr не является подстановочным знаком звездочки (*). При использовании звездочки функция DCount вычисляет общее количество записей, включая записи, содержащие поля NULL . В следующем примере вычисляется количество записей в таблице Orders.
intX = DCount("*", "Orders")
Если домен — это таблица с первичным ключом, можно также подсчитать общее количество записей, задав expr в поле первичного ключа, так как в поле первичного ключа никогда не будет значения 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 через выражение.
Пример
Следующая функция возвращает количество заказов, отправленных в указанную страну или регион после указанной даты отправки. Домен — это таблица Orders.
Public Function OrdersCount(ByVal strCountry As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountry] = '" & strCountry & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
В следующих примерах показано, как использовать различные типы условий с функцией DCount .
' ***************************
' Typical Use
' Numerical values. Replace "number" with the number to use.
variable = DCount("[FieldName]", "TableName", "[Criteria] = number")
' Strings.
' Numerical values. Replace "string" with the string to use.
variable = DCount("[FieldName]", "TableName", "[Criteria]= 'string'")
' Dates. Replace "date" with the string to use.
variable = DCount("[FieldName]", "TableName", "[Criteria]= #date#")
' ***************************
' ***************************
' Referring to a control on a form
' Numerical values
variable = DCount("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)
' Strings
variable = DCount("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")
' Dates
variable = DCount("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
' ***************************
' ***************************
' Combinations
' Multiple types of criteria
variable = DCount("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
& " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
& " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
' Use two fields from a single record.
variable = DCount("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
' Expressions
variable = DCount("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
' Control Structures
variable = DCount("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
' ***************************
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.