Функции DMin, DMax

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

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

Синтаксис

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

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

Функции 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). Аргумент условия ограничивает результирующий набор теми записями, в которых в качестве региона доставки указано Соединенное Королевство (UK).

Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")

В следующем примере аргумент условия содержит текущее значение поля OrderDate (ДатаЗаказа). Это поле связано с полем OrderDate таблицы Orders (Заказы). Обратите внимание на то, что ссылка на элемент управления не заключена в двойные кавычки ("), обозначающие строки. Это гарантирует, что каждый раз при вызове функции DMaxMicrosoft Office Access 2007 будет получать текущее значение элемента управления.

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 & "#")
Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×