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