Функції DMin, DMax

Увага! : Цю статтю перекладено за допомогою служби машинного перекладу; див. застереження. Версію цієї статті англійською мовою див. тут для отримання довідки.

За допомогою функцій DMin і DMax можна обчислити найбільше й найменше значення у вказаному наборі записів (домені). Функції DMin і DMax можна використовувати в модулі Visual Basic for Applications (VBA), макросі, виразі запиту й обчислюваному елементі керування.

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

Синтаксис

DMin ( expr , domain [, criteria] )

DMax ( expr , domain [, criteria] )

Функції DMin і DMax мають такі аргументи:

Аргумент

Опис

expr

Обов’язковий. Вираз, що визначає поле, для якого потрібно знайти найменше або найбільше значення. Це може бути рядковий вираз, який визначає поле в таблиці або запиті, або вираз, який обчислює дані в цьому полі. В аргументі expr можна вказати ім’я поля в таблиці, елемента керування у формі, константи або функції. Якщо аргумент expr включає функцію, вона може бути вбудованою або користувацькою, але не може бути іншою агрегатною функцією домену чи агрегатною функцією SQL.

domain

Обов’язковий. Рядковий вираз, який визначає набір записів, щоб складають домен. Це може бути ім’я таблиці або ім’я запиту, у якого немає обов’язкових параметрів.

criteria

Необов’язковий. Рядковий вираз, що дає змогу обмежити діапазон даних, до якого застосовується функція DMin або DMax. Наприклад, аргумент criteria часто еквівалентний реченню WHERE у виразі SQL без слова WHERE. Якщо аргумент criteria не вказано, функції DMin і DMax обчислюють аргумент expr для всього домену. Будь-яке поле, яке міститься в аргументі criteria, також має бути вказано як поле в аргументі domain. В іншому разі функції DMin і DMax повертають Null-значення.


Примітки

Функції DMin і DMax повертають найменше та найбільше значення, які задовольняють умови в аргументі criteria. Якщо вираз expr визначає числові дані, функції DMin і DMax повертають числові значення. Якщо вираз expr визначає дані типу "рядок", то ці функції повертають перший або останній рядок за алфавітом.

Функції DMin і DMax ігнорують Null-значення в полі, на яке посилається аргумент expr. Однак, якщо жоден запис не задовольняє умови в аргументі criteria або аргумент domain не містить жодного запису, функції DMin і DMax повертають Null-значення.

Де б не використовувалася функція DMin або DMax (у макросі, модулі, виразі запиту чи обчислюваному елементі керування), аргумент criteria потрібно створювати дуже уважно, щоб він обчислювався правильно.

За допомогою функцій DMin і DMax можна також задати умови в рядку запиту "Критерії", в обчислюваному полі виразу запиту або в рядку "Оновлення до" в запиті на оновлення.

Примітка : У виразі обчислюваного поля запиту підсумків можна використовувати функції DMin і DMax або Min і Max. Якщо використовується функція DMin або DMax, спочатку оцінюються значення, а потім групуються дані. Якщо використовується функція Min або Max, спочатку групуються дані, а потім оцінюються значення у виразі поля.

В обчислюваному елементі керування використовуйте функцію DMin або DMax, коли потрібно за допомогою умов обмежити діапазон даних, до якого застосовується функція. Наприклад, щоб відобразити максимальну вартість доставки замовлення до Каліфорнії, установіть властивість ControlSource текстового поля для такого виразу:

=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")

Якщо потрібно просто знайти найменше або найбільше значення всіх записів в аргументі domain, використовуйте функцію Min або Max.

Функцію DMin або DMax можна використовувати в модулі, макросі або обчислюваному елементі керування у формі, якщо потрібного поля немає в джерелі записів, на основі якого створено цю форму.

Порада

Хоча ви можете знайти найменше або найбільше значення в полі підлеглої таблиці за допомогою функції DMin або DMax, можливо, ефективніше буде створити запит, який містить необхідні поля з обох таблиць, а потім – форму або звіт на його основі.

Примітка : Ці функції не враховують незбережені зміни в записах аргументу domain. Якщо потрібно, щоб функція DMax або DMin урахувала змінені значення, спочатку потрібно зберегти зміни. Для цього на вкладці Дані в групі Записи натисніть кнопку Зберегти запис, перемістіть фокус до іншого запису або скористайтеся методом оновлення.

Приклад

Примітка : У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (VBA). Щоб отримати докладні відомості про використання модуля VBA, клацніть пункт Довідник розробника в розкривному списку поряд із полем Пошук і введіть у поле пошуку принаймні один термін.

У наведеному нижче прикладі повертаються найменші та найбільші значення з поля "Вартість доставки" для замовлень, доставлених до Сполученого Королівства. Домен – це таблиця "Замовлення". Аргумент criteria обмежує отриманий набір записів, включаючи в нього лише ті, у яких поле "Країна_або_регіон_доставки" має значення "Сполучене Королівство".

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

У наступному прикладі аргумент criteria містить поточне значення текстового поля під назвою "Дата_замовлення". Текстове поле пов’язано з полем "Дата_замовлення" в таблиці "Замовлення". Зверніть увагу, що посилання на елемент керування не взято в подвійні лапки, які позначають рядки. Так програма Microsoft Office Access 2007 отримуватиме поточне значення з елемента керування щоразу, коли викликається функція DMax.

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

Примітка : Застереження про машинний переклад: Цю статтю перекладено комп’ютерною системою без втручання людини. Корпорація Майкрософт пропонує таку послугу, щоб іншомовні користувачі могли дізнаватися про продукти, служби й технології Microsoft. Оскільки статтю перекладено за допомогою служби машинного перекладу, вона може містити смислові, синтаксичні або граматичні помилки.

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×