Funkce DSum

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Funkci DSum můžete použít k výpočtu součtu sady hodnot v určené sadě záznamů (doméně). Funkci DSum můžete použít v modulu VBA (jazyk Visual Basic for Application), makru, výrazu dotazu nebo počítaném ovládacím prvku.

Můžete ji například použít ve výrazu počí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í. Můžete ji také použít v počítaném ovládacím prvku k zobrazení mezisoučtu prodejů pro určitý produkt.

Syntaxe

DSum(výraz, doména [, kritéria] )

Syntaxe funkce DSum má tyto argumenty:

Argument Popis
výraz Povinný argument. Výraz určující číselné pole, jehož hodnoty chcete sečíst. Může jít buď o řetězcový výraz identifikující pole v tabulce nebo dotazu, nebo výraz, který provádí 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. Ř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érium: Nepovinný argument. Řetězcový výraz, který slouží k omezení oblasti dat, u které bude provedena funkce DSum . Kritérium je například často ekvivalentem klauzule WHERE ve výrazu SQL bez slova WHERE. Pokud kritérium vynecháte, vyhodnotí funkce DSum výraz pro celou doménu. Každé pole, které je zahrnuto v kritériu , musí být také polem v doméně; V opačném případě vrátí funkce DSum 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, jestli funkci DSum použijete v makru, modulu, výrazu dotazu nebo počí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 můžete použít k zadání kritérií v řádku Kritéria v dotazu, v počítaném poli ve výrazu dotazu nebo v řádku Aktualizovat do v aktualizačním dotazu.

Poznámka

Ve výrazu počítaného pole v souhrnném dotazu můžete použít buď funkci DSum , nebo Sum . Použijete-li funkci DSum , proběhne výpočet hodnot před seskupením dat. Použijete-li funkci Sum , budou 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 je možné použít k udržování mezisoučtu prodeje daného výrobku v počítaném ovládacím prvku.

tip

Pokud potřebujete v ovládacím prvku v sestavě udržovat mezisoučet, je možné v případě, že zdroj záznamů pro danou sestavu obsahuje pole, na které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 kliknutím na 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 Doménovou funkci (například DSum) můžete použít v řádku Aktualizovat do aktualizačního dotazu. Předpokládejme například, že chcete sledovat aktuální prodeje podle produktů v tabulce Produkty. Do tabulky Produkty můžete přidat nové pole s názvem SalesSofar a spustit aktualizační dotaz, který vypočítá správné hodnoty a aktualizuje záznamy. Uděláte to tak, že vytvoříte nový dotaz založený na tabulce Výrobky a na kartě Návrh kliknete ve skupině Typ dotazu na Aktualizovat. Přidejte do mřížky dotazu pole SalesSoFar a do řádku Aktualizovat do zadejte toto:

DSum("[Quantity]*[UnitPrice]", "Order Details", _
    "[ProductID] = "& [ProductID])

Po spuštění dotazu vypočítá Access 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í DSuma v kódu jazyka VBA 

Poznámka

Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud vás zajímají další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat, a do vyhledávacího pole napište požadované pojmy.

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 sadu výsledků dotazu na záznamy, u kterých je v poli ZeměPříjemce hodnota UK.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = '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 #, aby byl při spojení řetězců řetězcový literál uzavřen v jednoduchých uvozovkách a datum uvedeno mezi znaky #.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK' AND _
    [ShippedDate] > #1-1-95#")