Функція DSum

Застосовується до
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Функцію DSum можна використовувати, щоб обчислити суму значень у вказаному наборі записів (домені). Використовуйте функцію DSum у модулі Visual Basic for Applications (VBA), макросі, виразі запиту або обчислюваному елементі керування.

Наприклад, функцію DSum можна використовувати у виразі обчислюваного поля запиту, щоб обчислити загальний обсяг збуту конкретного працівника за певний період часу. Функцію DSum можна також використати в обчислюваному елементі керування, щоб відобразити суму збуту з нагромадженням для певного продукту.

Синтаксис

DSum(вираз, домен [, умови] )

Синтаксис функції DSum має такі аргументи:

Аргумент Опис
expr Обов’язковий. Вираз, який визначає числове поле, значення якого потрібно підсумувати. Це може бути рядковий вираз, який визначає поле в таблиці чи запиті, або вираз, який обчислює дані в цьому полі. В аргументі вираз можна вказати ім’я поля в таблиці, елемента керування у формі, константи або функції. Якщо аргумент вираз включає функцію, вона може бути вбудованою або користувацькою, але не може бути іншою агрегатною функцією домену або агрегатною функцією SQL.
домен Обов’язковий аргумент. Рядковий вираз, який визначає набір записів, щоб складають домен. Це може бути ім’я таблиці або ім’я запиту, у якого немає обов’язкових параметрів.
умови — необов’язковий аргумент. Рядковий вираз, який дає можливість обмежити діапазон даних, до якого застосовується функція DSum . Наприклад, умови часто еквівалентні реченню WHERE у виразі SQL без слова WHERE. Якщо умову не вказано, функція DSum обчислює вираз для всього домену. Будь-яке поле, яке включено в умови , також має бути полем у домені; інакше функція DSum повертає Null-значення.

    

Примітки

Якщо жоден запис не задовольняє умовам в аргументі умови або домен не містить жодного запису, функція DSum повертає Null-значення.

Де б не використовувалася функція DSum – у макросі, модулі, виразі запиту чи обчислюваному елементі керування, аргумент умови потрібно створювати з обережністю, щоб забезпечити правильність його обчислення.

За допомогою функції DSum можна вказати умови в рядку "Критерії " запиту, в обчислюваному полі у виразі запиту або в рядку "Оновлення до" запиту на оновлення.

Примітка.

У виразі обчислюваного поля запиту підсумків можна використовувати функцію DSum або Sum . Якщо використовується функція DSum , значення обчислюються перед групуванням даних. Якщо використовується функція Sum , дані групуються перед тим, як обчислюються значення у виразі поля.

Функцію DSum можна використовувати, коли потрібно відобразити суму з набору значень поля, яке не є джерелом записів форми або звіту. Припустімо, наприклад, що є форма, у якій відображається інформація про певний продукт. Функцію DSum можна використовувати, щоб зберегти накопичений підсумок збуту продукту в обчислюваному елементі керування.

Порада

Якщо потрібно зберегти накопичений підсумок в елементі керування звіту, можна використати властивість RunningSum цього елемента керування, якщо його базове поле присутнє в джерелі записів звіту. Функцію DSum можна використовувати, щоб зберегти суму з нагромадженням у формі.

Примітка.

Ця функція не враховує незбережені зміни в записах домену . Якщо потрібно, щоб функція DSum врахувала змінені значення, спочатку потрібно зберегти зміни. Для цього натисніть кнопку "Зберегти запис " у групі "Записи " на вкладці " Основне ", перемістіть фокус до іншого запису або скористайтеся методом оновлення .

Приклади

Використання функції DSum у виразі Функцію домену (наприклад, DSum) можна використовувати в рядку "Оновлення до" запиту на оновлення. Припустімо, наприклад, що потрібно відстежувати поточний збут за продуктами в таблиці "Продукти". Можна додати до таблиці "Продукти" нове поле з ім’ям "Збут_на_цей_час" і виконати запит на оновлення, щоб обчислити правильні значення й оновити записи. Для цього створіть новий запит на основі таблиці "Продукти", а потім на вкладці Конструктор у групі Тип запиту натисніть кнопку Оновити. Додайте поле "Збут_на_цей_час" до сітки запиту та введіть у рядку Оновлення до таке:

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

Виконуючи запит, програма Access обчислює загальний обсяг збуту для кожного продукту на основі даних із таблиці "Відомості про замовлення". Обсяг збуту для кожного продукту буде додано до таблиці "Продукти".

Використання DSum у коді VBA 

Примітка.

У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (VBA). Щоб отримати докладні відомості про використання модуля VBA, клацніть пункт Довідник розробника в розкривному списку поряд із полем Пошук і введіть у поле пошуку принаймні один термін.

У наведеному нижче прикладі підсумовуються значення з поля "Вартість пересилання" для замовлень, доставлених до Сполученого Королівства. Домен – це таблиця "Замовлення". Аргумент умови обмежує отриманий набір записів, включаючи в нього лише ті, у яких поле "Країна_або_регіон_доставки" має значення "Сполучене Королівство".

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#")