Funkce DMin a DMax slouží k určení minimální a maximální hodnoty v zadané sadě záznamů (doméně (Doména: Sada záznamů definovaná tabulkou, dotazem nebo výrazem SQL. Agregační doménové funkce vracejí statistické informace o určité doméně neboli sadě záznamů.)). Funkce DMin a DMax lze použít v modulu Visual Basic for Applications (VBA), makru (Makro: Akce nebo posloupnost akcí, které lze použít k automatizaci úloh. Makra se zaznamenávají v programovacím jazyce Visual Basic for Applications.), výrazu dotazu nebo vypočítaném ovládacím prvku (Vypočítaný ovládací prvek: Ovládací prvek používaný ve formuláři, sestavě nebo na datové stránce k zobrazení výsledku výrazu. Výsledek je přepočítán při každé změně hodnot použitých ve výrazu.).
Funkce DMin a DMax lze použít například ve vypočtených ovládacích prvcích v sestavě k zobrazení nejmenší a největší částky objednávek pro určitého zákazníka. Funkci DMin lze použít také ve výrazu dotazu k zobrazení všech objednávek, u kterých je sleva vyšší než minimální možná sleva.
Syntaxe
DMin(výraz, doména [, kritéria] )
DMax (výraz, doména [, kritéria] )
Funkce DMin a DMax obsahují následující argumenty:
| Argument |
Popis |
| výraz |
Povinný argument. Výraz určující pole, jehož minimální nebo maximální hodnotu chcete najít. Může jít buď o řetězcový výraz (Řetězcový výraz: Výraz, který je vyhodnocen jako posloupnost sousedících znaků. Prvky výrazu mohou zahrnovat: funkce vracející řetězec nebo řetězec typu Variant (VarType 8), řetězcový literál, konstantu, proměnnou nebo řetězec typu Variant</.), který určuje pole v tabulce nebo dotazu, nebo výraz, jehož prostřednictvím je proveden výpočet s daty daného pole. Argument výraz může obsahovat název pole tabulky, ovládacího prvku ve formuláři, konstanty nebo funkce. Pokud argument výraz obsahuje funkci, může jít o předdefinovanou funkci nebo funkci definovanou uživatelem, ale nikoli o jinou doménovou agregační funkci nebo agregační funkci SQL. |
| doména |
Povinný argument. Tento řetězcový výraz identifikuje sadu záznamů tvořících doménu. Může jít o název tabulky nebo název dotazu, který nevyžaduje parametr. |
| kritéria |
Volitelný argument. Řetězcový výraz, který slouží k omezení oblasti dat, u které bude provedena funkce DMin nebo DMax. Argument kritéria je například často ekvivalentem klauzule WHERE ve výrazu SQL bez slova WHERE. V případě vynechání argumentu kritéria jsou hodnoty funkcí DMin a DMax zjišťovány pro argument výraz v celé doméně. Všechna pole obsažená v argumentu kritéria musí být také zahrnuta v argumentu doména. V opačném případě vrátí funkce DMin a DMax hodnotu Null (Hodnota Null: Hodnota, kterou můžete zadat do pole nebo ji použit ve výrazech a dotazech a označit tak chybějící nebo neznámá data. V jazyce Visual Basic označuje klíčové slovo Null hodnotu Null. Některá pole, například pole primárního klíče, nemohou obsahovat hodnotu Null.). |
Poznámky
Funkce DMin a DMax vrátí minimální a maximální hodnotu, které odpovídají argumentu kritéria. Pokud argument výraz označuje číselná data, funkce DMin a DMax vrátí číselné hodnoty. Pokud argument výraz označuje data typu řetězec, vrátí první nebo poslední řetězec podle abecedy.
Funkce DMin a DMax ignorují hodnotu Null v poli, na které odkazuje argument výraz. Pokud však argumentu kritéria neodpovídá žádný záznam nebo argument doména neobsahuje žádné záznamy, vrátí funkce DMin a DMax hodnotu Null.
Bez ohledu na to, zda funkci DMin nebo DMax použijete v makru, modulu, výrazu dotazu nebo vypočítaném ovládacím prvku, je nutné vytvořit argument kritéria pečlivě, aby bylo zajištěno správné vyhodnocení funkce.
Funkce DMin a DMax lze použít k zadání kritérií v řádku Kritéria v dotazu, ve výrazu vypočítaného pole v dotazu nebo v řádku Aktualizovat v aktualizačním dotazu (Aktualizační dotaz: Akční dotaz (příkaz SQL), který mění sadu záznamů podle zadaného kritéria (vyhledávacích podmínek).).
Poznámka: Ve výrazu vypočítaného pole souhrnného dotazu (Souhrnný dotaz: Dotaz, který zobrazí souhrnný výpočet (například průměr nebo součet) hodnot v různých polích tabulky nebo tabulek. Souhrnný dotaz není zvláštní druh dotazu, spíše zvyšuje flexibilitu výběrových dotazů.) lze použít funkce DMin a DMax nebo Min a Max. Použijete-li funkci DMin nebo DMax, jsou hodnoty vyhodnoceny před seskupením dat. Použijete-li funkci Min nebo Max, jsou data seskupena před vyhodnocením hodnot ve výrazu pole.
Funkci DMin nebo DMax lze použít ve vypočítaném ovládacím prvku, potřebujete-li zadat kritéria, která omezí oblast dat, u které bude tato funkce provedena. Chcete-li například zobrazit maximální náklady na dopravné pro objednávky s místem dodání v Kalifornii, nastavte vlastnost ZdrojOvládacíhoPrvku
textového pole na následující výraz:
=DMax("[Dopravné]", "Objednávky", _
"[RegionPříjemce] = 'CA'")
Chcete-li pouze nalézt minimální nebo maximální hodnotu pro všechny záznamy v argumentu doména, použijte funkci Min nebo Max.
Funkci DMin nebo DMax lze použít v modulu, makru nebo vypočítaném ovládacím prvku ve formuláři, pokud se pole, které chcete zobrazit, nenachází ve zdroji záznamů, na němž je daný formulář založen.
Tip
I když lze minimální nebo maximální hodnotu z pole v cizí tabulce (Cizí tabulka: Tabulka (například Objednávky zákazníků) obsahující pole cizího klíče (například ČísloZákazníka), které je polem primárního klíče v jiné tabulce (například Zákazníci) v databázi a které je v relaci 1:N obvykle na straně N.) nalézt pomocí funkce DMin nebo DMax, pravděpodobně bude efektivnější vytvořit dotaz, který obsahuje potřebná pole z obou tabulek, a založit formulář nebo sestavu na tomto dotazu.
Poznámka: Neuložené změny záznamů v argumentu doména nebudou při použití těchto funkcí zahrnuty. Pokud chcete, aby byly funkce DMax nebo DMin založeny na změněných hodnotách, je nutné nejdříve změny uložit klepnutím na tlačítko Uložit záznam ve skupinovém rámečku Záznamy na kartě Data, přesunutím fokusu na jiný záznam nebo pomocí metody Update.
Příklad
Poznámka: Následující příklady uvádějí použití této funkce v modulu jazyka Visual Basic for Applications (VBA). Další informace o práci s jazykem VBA získáte tak, že klepnete na položku Referenční informace pro vývojáře v rozevíracím seznamu vedle pole Hledat a do pole pro hledání zadáte jeden nebo více pojmů.
V následujícím příkladu je vrácena nejnižší a nejvyšší hodnota v poli Dopravné pro objednávky s místem dodání ve Velké Británii. Doménou je tabulka Objednávky. Argument kritéria omezuje výsledky na záznamy, u kterých je v poli ZeměPříjemce hodnota UK.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Dopravné]", "Objednávky", _
"[ZeměPříjemce] = 'UK'")
curY = DMax("[Dopravné]", "Objednávky", _
"[ZeměPříjemce] = 'UK'")
V dalším příkladu obsahuje argument kritéria aktuální hodnotu textového pole DatumObjednávky. Toto textové pole je vázáno na pole DatumObjednávky v tabulce Objednávky. Všimněte si, že odkaz na ovládací prvek není uveden v dvojitých uvozovkách ("), které označují řetězce. Tím je zajištěno, že při každém volání funkce DMax získá aplikace Microsoft Office Access 2007 aktuální hodnotu z ovládacího prvku.
Dim curX As Currency
curX = DMax("[Dopravné]", _
"Objednávky", "[DatumObjednávky] = #" _
& Forms!Objednávky!DatumObjednávky & "#")
V dalším příkladu obsahuje výraz kritéria proměnnou dteOrderDate. Všimněte si, že řetězcový výraz obsahuje znaky čísel (#), aby bylo datum při spojení řetězců uvedeno mezi těmito znaky.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Dopravné]", "Objednávky", _
"[DatumObjednávky] = #" & dteOrderDate & "#")