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

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

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

Синтаксис

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

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

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

Аргумент

Описание

выражение

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

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

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

условия

Необязательный. Строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DMin или DMax . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если критерии опущены, функции DMin и DMax оценивают expr для всего домена. Любое поле, включенное в условия, также должно быть полем в домене, иначе функции 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). Аргумент условия ограничивает результирующий набор теми записями, в которых в качестве региона доставки указано Соединенное Королевство (UK).

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

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

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

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

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