Funkce DSum slouží k výpočtu součtu sady hodnot 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ů.)). Funkci DSum 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.).
Funkci DSum lze například použít ve výrazu vypočítaného pole v dotazu k výpočtu celkových hodnot prodeje uskutečněných určitým zaměstnancem v určitém časovém období. Funkci DSum lze také použít ve vypočítaném ovládacím prvku k zobrazení průběžného součtu prodejů pro určitý produkt.
Syntaxe
DSum(výraz, doména [, kritéria] )
Syntaxe funkce DSum obsahuje následující argumenty:
| Argument |
Popis |
| výraz |
Povinný argument. Výraz určující číselné pole, jehož hodnoty chcete sečíst. Může jít 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 DSum. 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 funkce DSum 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 DSum 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
Pokud argumentu kritéria neodpovídá žádný záznam nebo doména neobsahuje žádné záznamy, vrátí funkce DSum hodnotu Null.
Bez ohledu na to, zda funkci DSum 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.
Funkci DSum lze použít k zadání kritérií v řádku Kritéria v dotazu, ve vypočítaném poli ve výrazu 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 v souhrnném 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 buď funkci DSum nebo Sum. Použijete-li funkci DSum, jsou hodnoty vypočítány před seskupením dat. Použijete-li funkci Sum, jsou data seskupena před vyhodnocením hodnot ve výrazu pole.
Použití funkce DSum je výhodné, jestliže potřebujete zobrazit součet sady hodnot z pole, které není ve zdroji záznamů pro formulář nebo sestavu. Předpokládejme například, že jste vytvořili formulář, který zobrazuje informace o určitém výrobku. Funkci DSum lze použít k udržování průběžného součtu prodeje daného výrobku ve vypočítaném ovládacím prvku.
Tip
Potřebujete-li udržovat v ovládacím prvku v sestavě průběžný součet, lze v případě, že zdroj záznamů pro danou sestavu obsahuje pole, na němž je ovládací prvek založen, použít vlastnost PrůběžnáSuma
daného ovládacího prvku. K udržování průběžného součtu ve formuláři použijte funkci DSum.
Poznámka: Neuložené změny záznamů v argumentu doména nebudou při použití této funkce zahrnuty. Pokud chcete, aby byla funkce DSum založena 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ě Domů, přesunutím fokusu na jiný záznam nebo pomocí metody Update.
Příklady
Použití funkce DSum ve výrazu V řádku Aktualizovat v aktualizačním dotazu lze použít doménovou funkci (například DSum). Předpokládejme například, že chcete sledovat aktuální prodej jednotlivých výrobků v tabulce Výrobky. Do tabulky Výrobky můžete přidat nové pole DosavadníProdej a spuštěním aktualizačního dotazu vypočítat správné hodnoty a aktualizovat záznamy. Vytvořte nový dotaz založený na tabulce Výrobky a na kartě Návrh klepněte ve skupinovém rámečku Typ dotazu na tlačítko Aktualizovat. Přidejte pole DosavadníProdej do mřížky dotazu a do řádku Aktualizovat zadejte následující text:
DSum("[Množství]*[JednotkováCena]", _
"Podrobnosti o objednávce", _
"[KódVýrobku] = "& [KódVýrobku])
Po spuštění dotazu vypočítá aplikace Microsoft Office Access 2007 na základě informací z tabulky Rozpis objednávek celkové množství prodeje pro jednotlivé produkty. Součty prodeje jednotlivých produktů jsou přidány do tabulky Výrobky.
¨Použití funkce DSum v kódu jazyka VBA
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 vypočítán součet hodnot 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
curX = DSum("[Dopravné]", "Objednávky", _
"[ZeměPříjemce] = 'UK'")
V následujícím příkladu je součet vypočítán pomocí dvou samostatných kritérií. Všimněte si, že řetězcový výraz obsahuje jednoduché uvozovky (') a znaky čísel (#), aby byl při spojení řetězců řetězcový literál uzavřen v jednoduchých uvozovkách a datum uvedeno mezi znaky čísel.
Dim curX As Currency
curX = DSum("[Dopravné]", "Objednávky", _
"[ZeměPříjemce] = 'UK' AND _
[DatumOdeslání] > #1-1-95#")