Функции DMin, DMax

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

Синтаксис

DMin(expr, domain [, условие] )

DMax(expr, domain [; условие] )

Функции DMin и DMax принимают следующие аргументы:

Аргумент Описание
выражение Обязательный аргумент. Выражение, определяющее поле, для которого нужно найти минимальное или максимальное значение. Это может быть строковое выражение, определяющее поле в таблице или запросе, или выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля таблицы, элемента управления формы, константы или функции. Если выражение выражает включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не может быть агрегатной функции по подмножеству или агрегатной функции SQL.
подмножество Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.
условия — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, с которыми выполняется функция DMin или DMax . Например, условие часто эквивалентно предложению WHERE в выражении SQL, но без слова WHERE. Если условие опущено, функции DMin и DMax вычисляют выражение для всей области. Любое поле, включенное в условие , также должно быть полем в подмножестве, в противном случае функции DMin и DMax возвращают значение Null.

Замечания

Функции DMin и DMax возвращают минимальное и максимальное значения, удовлетворяющие условиям. Если выражение выражает идентифицирует числовые данные, функции DMin и DMax возвращают числовые значения. Если выражение выражает определяет строковые данные, они возвращают строку, которая является первой или последней в алфавитном порядке.

Функции DMin и DMax игнорируют значения Null в поле, на которое ссылается выражение. Однако если ни одна запись не удовлетворяет условию или домен не содержит записей, функции 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 таблицы 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 & "#")