Функции DMin и DMax можно использовать для определения минимальных и максимальных значений в указанном наборе записей (домене). Используйте функции DMin и DMax в модуле Visual Basic для приложений (VBA), макросе, выражении запроса или вычисляемом элементе управления.
Например, можно воспользоваться функциями DMin и DMax в вычисляемых элементах управления отчета, показывающего наименьший и наибольший объем заказа, сделанного определенным клиентом. Или, например, можно воспользоваться функцией DMin в выражении запроса, определяющего все заказы, для которых величина скидки выше минимально возможной величины.
Синтаксис
DMin(expr, domain [, criteria] )
DMax(expr, domain [, criteria] )
Функции DMin и DMax принимают следующие аргументы:
| Аргумент | Описание |
|---|---|
| выражение | Обязательный аргумент. Выражение, определяющее поле, для которого нужно найти минимальное или максимальное значение. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или выражение, выполняющее вычисление данных в этом поле. В expr можно включить имя поля в таблицу, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. |
| подмножество | Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
| условия | — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DMin или DMax . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если критерии опущены, функции DMin и DMax оценивают expr для всего домена. Любое поле, включенное в условия, также должно быть полем в домене, иначе функции DMin и DMax возвращают значение NULL. |
Замечания
Функции DMin и DMax возвращают минимальное и максимальное значения, удовлетворяющие условиям. Если expr идентифицирует числовые данные, функции DMin и DMax возвращают числовые значения. Если expr идентифицирует строковые данные, они возвращают строку, которая является первой или последней в алфавитном порядке.
Функции DMin и DMax игнорируют значения NULL в поле, на который ссылается expr. Однако если ни запись не удовлетворяет критериям или домен не содержит записей, функции DMin и DMax возвращают значение NULL.
Независимо от того, используете ли вы функцию DMin или DMax в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно создать аргумент условия , чтобы убедиться, что он будет правильно оценен.
Функцию DMin и DMax можно использовать для указания условий в строке Условия запроса, в выражении вычисляемого поля в запросе или в строке Обновить до запроса на обновление.
Примечание
Можно использовать функции DMin и DMax или функции Min и Max в выражении вычисляемого поля запроса итогов. При использовании функции DMin или DMax значения оцениваются перед группировкой данных. При использовании функции Min или Max данные группируются перед вычислением значений в выражении поля.
Функцию DMin или DMax можно использовать в вычисляемом элементе управления, если требуется указать условия для ограничения диапазона данных, к которым она применяется. Например, чтобы вывести максимальную цену доставки для заказа, поставляемого в Калифорнию, задайте для свойства поля Данные следующее выражение:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите найти минимальное или максимальное значение всех записей в домене, используйте функцию Min или Max .
Функцию DMin или DMax можно использовать в модуле или макросе либо в вычисляемом элементе управления в форме, если поле, которое требуется отобразить, не принадлежит к источнику записей, на котором основана форма.
Совет
Хотя можно использовать функцию DMin или DMax, чтобы найти минимальное или максимальное значение из поля во внешней таблице, может оказаться более эффективным создать запрос, содержащий необходимые поля из обеих таблиц, и создать форму или отчет на основе этого запроса.
Примечание
Несохраненные изменения записей в домене не включаются при использовании этих функций. Если вы хотите, чтобы функция DMax или DMin учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.
Пример
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере возвращаются наименьшие и наибольшие значения из поля "Поставка" (Freight) для заказов, доставленных в Великобританию. Подмножеством является таблица "Заказы" (Orders). Аргумент условия ограничивает результирующий набор записей теми, для которых ShipCountryRegion равен Великобритании.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
В следующем примере аргумент условия включает текущее значение текстового поля с именем OrderDate. Это поле связано с полем OrderDate таблицы Orders (Заказы). Обратите внимание на то, что ссылка на элемент управления не заключена в двойные кавычки ("), обозначающие строки. Это гарантирует, что при каждом вызове функции DMax Access получает текущее значение из элемента управления .
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
В следующем примере выражение условия включает переменную dteOrderDate. Обратите внимание на то, что в строковое выражение включены знаки числа (#), поэтому, когда строки будут объединены, дата окажется заключенной между ними.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")