Можете да използвате функцията DSum, за да изчислите сумата на набор от стойности в зададен набор от записи (домейн). Използвайте функцията DSum в модул на Visual Basic for Applications (VBA), макрос, израз на заявка или изчисляема контрола.
Можете например да използвате функцията DSum в израз за изчисляемо поле в заявка, за да изчислите общата сума на продажбите, направени от даден служител за определен период от време. Или можете да използвате функцията DSum в изчисляема контрола, за да покажете сума с натрупване на продажбите за конкретен продукт.
Синтаксис
DSum ( expr , domain [, criteria] )
Синтаксисът на функцията DSum има следните аргументи:
Аргумент |
Описание |
expr |
Задължителен. Израз, който идентифицира числовото поле, чиято стойност искате да сумирате. Това може да бъде низов израз, идентифициращ поле в таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите името на поле в таблица, контрола на формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция. |
domain |
Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. Това може да бъде името на таблица или името на заявка за заявка, която не изисква параметър. |
criteria |
По желание. Низов израз, използван за ограничаване на диапазона от данни, върху които се изпълнява функцията DSum. Например criteria често е еквивалентно на клаузата WHERE в SQL израза, без думата WHERE. Ако criteria е пропуснато, функцията DSum изчислява израз спрямо целия домейн. Всяко поле, което е включено в criteria, трябва да бъде също и поле в domain; в противен случай функцията DSum връща Null. |
Забележки
Ако нито един запис не отговаря на аргумента criteria или ако домейнът не съдържа никакви записи, функцията DSum връща Null.
Независимо дали ще използвате функцията DSum в макрос, модул, израз на заявка, или изчисляема контрола, трябва да създадете внимателно аргумента criteria, за да сте сигурни, че ще се изчислява правилно.
Можете да използвате функцията DSum, за да зададете критерии в реда Criteria на заявка, в изчисляемо поле в израз за заявка или в реда Update To на заявка за актуализиране.
Забележка: Можете да използвате функцията DSum или Sum в израз за изчисляемо поле в заявка за общи суми. Ако използвате функцията DSum, стойностите се изчисляват, преди данните да бъдат групирани. Ако използвате функцията Sum, данните се групират, преди стойностите в израза за полето да бъдат изчислени.
Можете да използвате функцията DSum, когато трябва да покажете сумата от набор стойности от поле, което не е в източника на записи за вашия формуляр или отчет. Да предположим например, че имате формуляр, който показва информация за конкретен продукт. Можете да използвате функцията DSum, за да поддържате сума с натрупване на продажбите на този продукт в изчисляема контрола.
съвет
Ако трябва да поддържате сума с натрупване в контрола на отчет, можете да използвате свойството RunningSum на тази контрола, ако полето, на което е базирана, е включено в източника на записите за отчета. Използвайте функцията DSum, за да поддържате сума с натрупване във формуляр.
Забележка: Незаписаните промени в записите в domain не се включват, когато използвате тази функция. Ако искате функцията DSum да се базира на променените стойности, трябва първо да запишете промените, като щракнете върху Съхрани записа в групата Записи в раздела Начало, преместите фокуса към друг запис или използвате метода Update.
Примери
Използване на функцията DSum в израз Можете да използвате функция на домейн (като например DSum) в реда Update To на заявка за актуализиране. Да предположим например, че искате да следите текущите продажби по продукти в таблицата "Продукти". Можете да добавите в таблицата "Продукти" ново поле с име SalesSoFar и да изпълните заявка за актуализиране, за да изчислите правилните стойности и да актуализирате записите. За да направите това, създайте нова заявка на базата на таблицата "Продукти" и в раздела Структура, в групата Тип на заявката щракнете върху Актуализиране. Добавете полето SalesSoFar към мрежата на заявката и въведете следното в реда Update To:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Когато изпълните заявката, Access изчислява общата сума на продажбите за всеки продукт въз основа на информацията от таблицата "Подробности за поръчките". Сумата на продажбите за всеки продукт се добавя към таблицата "Продукти".
Използване на DSum във VBA код
Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко израза в полето за търсене.
Следващият пример показва общата сума на стойностите от полето "Навло" за поръчките, експедирани за Великобритания. Домейнът е таблицата "Поръчки". Аргументът criteria ограничава получения набор от записи до тези, за които ShipCountryRegion е равно на "Великобритания".
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
Следващият пример изчислява обща сума с помощта на два отделни критерия. Обърнете внимание, че единичните кавички (') и знакът за номер (#) са включени в низовия израз, така че когато низовете се конкатенират, низовата константа е оградена с единични кавички, а датата – със знаци #.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")