Функции 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 & "#")