Функции DMin и DMax

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Можете например да използвате функциите DMin и DMax в изчисляеми контроли на отчет, за да покажете най-малките и най-големите суми на поръчки за конкретен клиент. Или можете да използвате функцията DMin в израз на заявка, за да покажете всички поръчки с отстъпка, по-голяма от минималната възможна отстъпка.

Синтаксис

DMin(израз; домейн [, критерии] )

DMax(израз; домейн [; критерий] )

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

Аргумент Описание
израз Задължително. Израз, който идентифицира полето, за което искате да намерите минималната или максималната стойност. Това може да бъде низов израз, идентифициращ поле в таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите името на поле в таблица, контрола на формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция.
domain Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. Това може да бъде името на таблица или името на заявка за заявка, която не изисква параметър.
criteria Незадължително. Низов израз, използван за ограничаване на диапазона от данни, върху които се изпълнява функцията DMin или DMax . Например критерий често е еквивалентен на клаузата WHERE в SQL израза, без думата WHERE. Ако критерият е пропуснат, функциите DMin и DMax изчисляват израз спрямо целия домейн. Всяко поле, което е включено в критерия, трябва да бъде също и поле в домейн, в противен случай функциите DMin и DMax връщат Null.

Забележки

Функциите DMin и DMax връщат минималната и максималната стойност, които удовлетворяват критериите. Ако expr идентифицира числови данни, функциите DMin и DMax връщат числови стойности. Ако израз идентифицира низови данни, те връщат низа, който е първи или последен по азбучен ред.

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

Независимо дали ще използвате функцията DMin или DMax в макрос, модул, израз на заявка, или изчисляема контрола, трябва да създадете внимателно аргумента критерий , за да сте сигурни, че ще се изчислява правилно.

Можете да използвате функциите DMin и DMax , за да зададете критерии в реда за критерии на заявка, в израз за изчисляемо поле на заявка или в реда Update To на заявка за актуализиране.

Забележка

Можете да използвате функциите DMin и DMax или функциите Min и Max в израз за изчисляемо поле в заявка за общи суми. Ако използвате функцията DMin или DMax , стойностите се изчисляват, преди данните да бъдат групирани. Ако използвате функцията Min или Max , данните се групират, преди стойностите в израза за полето да бъдат изчислени.

Използвайте функцията DMin или DMax в изчисляема контрола, когато трябва да зададете критерии за ограничаване на диапазона от данни, върху които се изпълнява функцията. Например за да покажете максималния навло, начислен за поръчка, експедирана до Калифорния, задайте свойството ControlSource на текстово поле на следния израз:

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

Ако просто искате да намерите минималната или максималната стойност на всички записи в домейна, използвайте функцията Min или Max .

Можете да използвате функцията DMin или DMax в модул или макрос или в изчисляема контрола във формуляр, ако полето, което трябва да покажете, не е в източника на записи, на който се основава вашият формуляр.

съвет

Въпреки че можете да използвате функцията DMin или DMax за намиране на минималната или максималната стойност от поле във външна таблица, може да се окаже по-ефективно да създадете заявка, съдържаща полетата от двете таблици, от които имате нужда, и да базирате формуляра или отчета на тази заявка.

Забележка

Незаписаните промени в записите в домейна не се включват, когато използвате тези функции. Ако искате функцията DMax или DMin да се базира на променените стойности, трябва първо да запишете промените, като щракнете върху "Съхрани записа" под "Записи" в раздела "Данни", преместите фокуса към друг запис или използвате метода "Актуализация".

Пример

Забележка

Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Следващият пример връща най-ниската и най-високата стойност от полето "Навло" за поръчките, експедирани за Великобритания. Домейнът е таблицата "Поръчки". Аргументът критерий ограничава получения набор от записи до тези, за които ShipCountryRegion е равно на "Великобритания".


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

В следващия пример аргументът "критерий " включва текущата стойност на текстово поле, наречено "Дата на поръчка". Текстовото поле е обвързано с поле "Дата на поръчка" в таблица "Поръчки". Обърнете внимание, че препратката към контролата не е включена в двойните кавички ("), които означават низове. Това гарантира, че всеки път, когато функцията 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 & "#")