За допомогою функцій DMin і DMax можна визначити мінімальне та максимальне значення в указаному наборі записів (домен). Використовуйте функції DMin і DMax у модулі Visual Basic for Applications (VBA), макросі, виразі запиту або обчислюваному елементі керування.
Наприклад, ви можете використати функції DMin і DMax в обчислюваних елементах керування у звіті, щоб відобразити найменші й найбільші суми замовлень для певного клієнта. Або можете написати вираз запиту з функцією DMin, щоб відобразити всі замовлення зі знижкою, вищою за найменшу можливу.
Синтаксис
DMin(expr, domain [, criteria] )
DMax(expr, domain [, criteria] )
Функції DMin і DMax мають такі аргументи:
| Аргумент | Опис |
|---|---|
| expr | Обов’язковий. Вираз, що визначає поле, для якого потрібно знайти найменше або найбільше значення. Це може бути рядковий вираз, який визначає поле в таблиці чи запиті, або вираз, який виконує обчислення даних у цьому полі. У виразі можна включити ім'я поля в таблицю, елемент керування у формі, константу або функцію. Якщо вираз містить функцію, її можна використовувати як вбудовану, так і визначену користувачем, але не іншу агрегатну функцію домену або агрегатну функцію SQL. |
| домен | Обов’язковий аргумент. Рядковий вираз, який визначає набір записів, щоб складають домен. Це може бути ім’я таблиці або ім’я запиту, у якого немає обов’язкових параметрів. |
| умови | — необов’язковий аргумент. Рядковий вираз, який використовується для обмеження діапазону даних, до якого застосовується функція DMin або DMax . Наприклад, умови часто еквівалентні речелю WHERE у виразі SQL без слова WHERE. Якщо аргумент criteria не вказано, функції DMin і DMax оцінюють вираз для всього домену. Будь-яке поле, включене до умов , також має бути полем у домені, інакше функції DMin і DMax повертають Null-значення. |
Примітки
Функції DMin і DMax повертають мінімальні та максимальні значення, які відповідають умовам. Якщо вираз вираз визначає числові дані, функції DMin і DMax повертають числові значення. Якщо вираз вираз визначає дані рядка, вони повертають рядок, який перший або останній за алфавітом.
Функції DMin і DMax ігнорують Null-значення в полі, на яке посилається вираз. Однак, якщо жоден запис не задовольняє умови або домен не містить записів, функції DMin і DMax повертають Null-значення.
Незалежно від того, використовуєте ви функцію DMin або DMax у макросі, модулі, виразі запиту або обчислюваному елементі керування, аргумент criteria потрібно створювати ретельно, щоб переконатися, що він буде обчислений правильно.
За допомогою функції DMin і DMax можна вказати умови в рядку Критерії запиту, у виразі обчислюваного поля в запиті або в рядку Оновлення до запиту на оновлення.
Примітка.
У виразі обчислюваного поля запиту підсумків можна використовувати функції DMin і DMax або Min і Max . Якщо використовується функція DMin або DMax , значення обчислюються до згрупування даних. Якщо використовується функція Min або Max , дані згрупуються перед обчисленням значень у виразі поля.
В обчислюваному елементі керування використовуйте функцію DMin або DMax, коли потрібно за допомогою умов обмежити діапазон даних, до якого застосовується функція. Наприклад, щоб відобразити максимальну вартість доставки замовлення до Каліфорнії, установіть властивість ControlSource текстового поля для такого виразу:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Якщо потрібно просто знайти мінімальне або максимальне значення всіх записів у домені, скористайтеся функцією Min або Max .
Функцію DMin або DMax можна використовувати в модулі, макросі або обчислюваному елементі керування у формі, якщо потрібного поля немає в джерелі записів, на основі якого створено цю форму.
Порада
Хоча за допомогою функції DMin або DMax можна знайти мінімальне або максимальне значення з поля в зовнішній таблиці, може бути ефективніше створити запит, який містить потрібні поля з обох таблиць, і базувати форму або звіт на основі цього запиту.
Примітка.
Незбережені зміни в записах у домені не включаються під час використання цих функцій. Якщо потрібно, щоб функція DMax або DMin базвалася на змінених значеннях, спочатку потрібно зберегти зміни, натиснувши кнопку Зберегти запис у розділі Записи на вкладці Дані , перемістивши фокус до іншого запису або скориставшись методом Update .
Приклад
Примітка.
У прикладах нижче показано використання цієї функції в модулі 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 містить поточне значення текстового поля "Дата_замовлення". Текстове поле пов’язано з полем "Дата_замовлення" в таблиці "Замовлення". Зверніть увагу, що посилання на елемент керування не взято в подвійні лапки, які позначають рядки. Це гарантує, що щоразу, коли викликається функція 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 & "#")