Как рассчитать суммарное значение поля в access
В данной статье описано использование агрегатной функции для суммирования данных в результатах запроса. В ней также кратко описывается использование других агрегатных функций, например COUNT и AVG, для подсчета или вычисления средних значений в результирующем наборе записей. Кроме того, в этой статье рассматривается использование строки итогов — возможности Access, позволяющий суммировать данные без изменения структуры запросов.
Выберите нужное действие
Общее представление о способах суммирования данных
Просуммировать числовой столбец в запросе можно с помощью агрегатной функции. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. В Access существует множество агрегатных функций, включая Sum, Count, Avg (для вычисления среднего значения), Min и Max. Суммирование данных производится путем добавления в запрос функции Sum, подсчет данных — путем использования функции Count и т. д.
Кроме того, в Access предусмотрено несколько способов добавления функции Sum и других агрегатных функций в запрос. Вы можете:
Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов — возможность Access, позволяющая использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.
Создать итоговый запрос. Итоговый запрос вычисляет промежуточные итоги для групп записей, а строка итогов — общие итоги для одного или нескольких столбцов (полей) данных. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж.
Создать перекрестный запрос. Перекрестный запрос — это особый тип запросов, отображающий результаты в сетке, напоминающей лист Excel. Перекрестные запросы суммируют значения и затем группируют их по двум наборам фактов — вдоль боковой стороны (заголовки строк) и в верхней части (заголовки столбцов). Например, вы можете использовать перекрестный запрос для отображения итоговых значений продаж для каждого города за последние три года, как показано в таблице:
Подсчет общей суммы
Подсчет общей суммы
Подскажите пожалуйста как сделать подсчет общей суммы в форме? Для примера: есть форма на которой.
Подсчет общей суммы (Access)
Ребят, такая проблема: Подсчет суммы происходит когда и в расходах и в доходах есть какая то сумма.
Расчет общей суммы по полю запроса и доли значения каждой записи от общей суммы
Здравствуйте. В БД на аксесс 2013 есть запрос который выводит следующие данные: за выбранный период.
Вычисление общей суммы
file:///C:/Users/Spektor/Desktop/zadanie.jpg
Сообщение было отмечено Callell как решение
Решение
Сообщение от Callell
то в запросе нужно поставить так:
Итого:[Количество]*([Сумма]+[Надбавка])
Если надбавки нет, то она ноль и естественно не считается. Но надо знать, как устроена ваша схема данных в базе, а соответственно надо пример.
Этап 6. Суммирование данных в запросе
MS Access позволяет производить вычисления и групповые операции с записями. Допустим, отдел доставки запросил сведения о суммах, выплаченных за доставку заказов на Украину. Вам необходимо модифицировать предыдущий запрос. Для этого следует:
Открыть запрос «Доставка на Украину» в режиме Конструктора. Для этого:
на вкладке Запрос выделить строку «Доставка на Украину»;
щелкнуть на кнопке Конструктор окна БАЗЫ ДАННЫХ.
Щелкнуть на кнопке
Групповые операции или выбрать команду меню Вид/Групповые операции, чтобы добавить в Бланк Запроса строку «Групповые операции».
Щелкнуть в строке «Группировка» под полем «Стоимость доставки», затем на кнопке со стрелкой.
Выбрать строку «Sum».
Закрыть запрос и сохранить внесенные изменения.
Создайте и выполните запрос с суммированием данных.
Этап 7. Запросы с вычислениями
А теперь попробуем произвести вычисления в запросе. Представим себе, что продажа товаров Вашей фирмы идет столь бойко, что отдел маркетинга попросил Вас составить прогноз объемов продаж в случае, если поднять на него цену на 5%. Вам нужно составить запрос с вычислениями:
Создать новый запрос и добавить в окно «Запрос-выборка» таблицу «Товары».
Включить в бланк запроса по образцу поля «Марка», «Единица измерения» и «Цена».
Сохранить запрос под именем «Повышение цен».
Щелкнуть на кнопке Режим конструктора панели инструментов и поместить курсор в пустую клетку бланка запроса справа от клетки «Цена».
Ввести «[Цена]*1.05» и нажать клавишу ENTER .

После того, как Вы нажмете клавишу ENTER, MS Access добавит к имени поля «Выражение 1:». Чтобы увидеть выражение целиком, нужно щелкнуть два раза на правой границе разделителя полей.
Щелкнуть на кнопке Режим таблицы, чтобы увидеть результат выполнения запроса.
Заменить имя «Выражение 1» на имя «Новая цена», для чего:
щелкнуть на кнопке Режим конструктора панели инструментов, а затем на клетке, содержащей выражение «Выражение 1: [Цена]*1.05»;
вместо текста «Выражение 1» ввести название «Новая цена».
Чтобы показать новую цену в денежном формате, щелкнуть на кнопке Свойства панели инструментов. Откроется диалог «Свойства поля».

Свойства поля — атрибут поля, который устанавливает пользователь, чтобы определить характеристики объекта или некоторые аспекты его функционирования.
выбрать строку «Формат поля» и щелкнуть на кнопке рядом с полем, чтобы раскрыть ниспадающий список;
выделить формат «Денежный»;
закрыть диалог «Свойства поля».
Щелкнуть на кнопке Режим таблицы, чтобы увидеть новые цены в выбранном формате в столбце с новым названием.
Сохраните запрос и закройте его.
Выполните прогноз объемов продаж фирмы в случае повышения цен на товары на 5%.
3. Поиск и обновление информации базы данных
MS Access поможет Вам организовать хранение и обработку информации любых видов и объемов в таблицах и обеспечит доступ к ней посредством нескольких щелчков мыши. Но удобным способом доступа к данным, а также их редактирования и поиска являются формы базы данных.
013 — Пример вычисления общей суммы в таблице базы данных Microsoft Access с использованием SQL-запроса. Компонент TDBText
Пример вычисления общей суммы в таблице базы данных Microsoft Access с использованием SQL -запроса. Компонент TDBText
Бывают случаи, когда в таблице базы данных нужно сосчитать сумму числовых значений некоторого столбца. Для этого существуют разные методы вычисления, один из которых базируется на использовании соответствующего SQL -запроса.
В данной задаче, на примере таблицы Microsoft Access , вычисляется общая сумма с использованием SQL -запроса. Результат вычисления суммы заносится в компонент типа TDBText .
Используя данный пример, можно производить числовые вычисления над множеством записей заданного столбца.
Условие задачи
Дана таблица, сформированная средствами СУБД Microsoft Access . Таблица содержит данные с начисленной заработной платой работников предприятия.
Таблица имеет следующую структуру.
Приложение должно вычислять суммарную заработную плату всех работников предприятия. Результат суммы должен выводиться в компоненте типа TDBText сразу после загрузки приложения.
Решение
- Построение формы.
Из панели инструментов Tool Palette нужно разместить на форме следующие компоненты (рис. 1):
– из вкладки “dbGo” компонент TADOConnection. Создается объект с именем ADOConnection1. Этот компонент нужен для связи других компонент с файлом базы данных;
– из вкладки “ Data Access ” компонент TDataSource. Создается объект с именем DataSource1. Этот компонент связывает таблицу базы данных ADOTable1 с компонентом визуализации данных DBGrid1;
– из вкладки « Data Access ” компонент типа TDataSource. Создается объект с именем DataSource2. Этот компонент нужен для связи компонента ADOQuery1 с компонентом DBText1;
– из вкладки “dbGo” компонент типа TADOTable. Создается объект с именем ADOTable1. Этот компонент соответствует таблице Workers базы данных;
– из вкладки «dbGo» компонент типа TADOQuery. Этот компонент нужен для формирования SQL-запроса и отображения результата этого запроса в компоненте TDBText;
– из вкладки “ Data Controls ” компонент типа TDataGrid. Создается объект с именем DBGrid1. Этот компонент отображает таблицу Workers базы данных;
– из вкладки « Data Controls ” компонент типа TDBText. Создается объект с именем DBText1. Этот компонент отображает результат SQL-запроса, который формируется в компоненте ADOQuery1.
Результирующая сумма будет выводиться в компоненте DBText1.
Схема связей между компонентами изображена на рисунке 2.

Рис. 1. Компоненты формы

Рис. 2. Схема связей между компонентами программы
- Подключение базы данных. Свойство ConnectionString компонента ADOConnection1.
Процесс подключения приложения к базе данных Microsoft Access подробно описан здесь.
Приложение к базе данных подключается с помощью свойства ConnectionString компонента ADOConnection1 (рис. 3). В свойстве ConnectionString указывается тип поставщика данных и полный путь к файлу базы данных.

Рис. 3. Строка ConnectionString компонента ADOConnection1
- Настройка компонент формы.
Следующим шагом нужно осуществить настройку компонент между собой. Для этого нужно установить:
– в компоненте ADOConnection1 свойство LoginPrompt = “false” (запрет постоянного ввода имени пользователя и пароля при подключении к базе данных);
– в компоненте ADOTable1 свойство Connection = «ADOConnection1”;
– в компоненте ADOQuery1 свойство Connection = “ADOConnection1”;
– в компоненте DataSource1 свойство DataSet = “ADOTable1”;
– в компоненте DataSource2 свойство DataSet = «ADOQuery1”;
– в компоненте DBGrid1 свойство DataSource = “DataSource1”;
– в компоненте DBText1 свойство DataSource = “DataSource2”;
– в компоненте ADOTable1 свойство TableName = “Worker”;
– в компоненте DBGrid1 из свойства Options установить опцию dgEditing = false (запрет внесения данных в ячейки таблицы непосредственно из сетки DBGrid1).
- Свойство Active компонентаADOTable1.
Для отображения данных в DBGrid1 нужно выполнить следующие действия над компонентом ADOTable1 (рис. 4):
– выделить компонент ADOTable1;
– установить свойство Active в значение true.
После этого данные таблицы будут отображены в DBGrid1.

Рис. 4. Свойство Active компонента ADOTable1
- Настройка размеров компонент и формы.
На этом этапе осуществляется корректировка размеров и позиций компонент на форме согласно образцу, показанному на рисунке 5.

Рис. 5. Основная форма приложения
- Скрытие поля ID_Worker в DBGrid1.
Поле ID_Worker целесообразно скрыть, поскольку оно есть ключевым полем. Для этого из контекстного меню нужно вызвать редактор полей « Fields Editor ” компонента ADOTable1. Вызов редактора изображен на рисунке 6.

Рис. 6. Вызов редактора « Fields Editor ”
Откроется окно Form1.ADOTable1 . В этом окне, с помощью мышки, нужно вызвать контекстное меню. В контекстном меню выбрать команду « Add All fields ».
В результате окно редактора примет вид, как показано на рисунке 7.
Рис. 7. Редактор полей Form1.ADOTable1
В редакторе полей отображаются все поля таблицы Worker. Чтобы удалить поле ID_Worker нужно на строке ID_Worker сделать клик правой кнопкой «мыши» и в контекстном меню выбрать команду Delete. После этого можно закрыть редактора Form1.ADOTable1.
В результате, в таблице DBGrid1 будет отображено только два поля (рис. 8).

Рис. 8. Отображение таблицы Worker с двумя полями
- Установка в поле Salary фильтра для отображения с двумя знаками после запятой.
Для того, чтобы в поле Salary корректно отображалось значение суммы (2 знака после запятой), нужно выполнить следующее.
Выделить компонент ADOTable1. Вызвать редактора полей “Fields Editor… ” так как описано в пункте 6. В результате откроется список состоящий из двух полей Name и Salary. Выделить строку с названием Salary. В Object Inspector будет активирован объект с именем ADOTable1Salary.
Следующим шагом в Object Inspector в поле “ Display Format ” нужно установить значение « 0.00 » (рис. 9).

Рис. 9. Установка формата вывода в поле Salary объекта ADOTable1
После выполненных действий, значения в поле Salary таблицы будут выводиться с точностью 2 знака после запятой.
- Настройка компонента Label1.
В компоненте Label1 в свойстве Caption нужно ввести строку « Сумма = ».
- Свойство SQL компонента ADOQuery1.
Компонент DBGrid1 предназначен для вывода суммы на основе SQL -запроса. Сам SQL -запрос формируется в компоненте ADOQuery1 в свойстве « SQL… ” (рис. 10).

Рис. 10. Свойство SQL компонента ADOQuery1
После выбора этого свойства, вызовется редактор “ String List Editor ”, в котором нужно ввести текст SQL -запроса (рис. 11).
Для вычисления суммы нужно ввести следующий текст запроса:
После этого набранный текст запроса нужно подтвердить выбором команды (кнопки) «OK”.

Рис. 11. Текст SQL -запроса
В SQL -запросе будет вызвана функция агрегирования SUM, которая входит в синтаксис языка SQL. Функция SUM вычисляет сумму записей заданного столбца (столбца «Salary»). Также в SQL -запросе формируется новое поле с именем « Сумма ” в котором отображается результат суммы.
Функции агрегирования обеспечивают получение некоторой обобщенной информации.
Язык SQL имеет и другие стандартные функции агрегирования, которые можно использовать в программах:
– COUNT – выполняет подсчет записей в таблице или подсчет ненулевых значений в столбце таблицы;
– MIN – возвращает минимальное значение в столбце;
– MAX – возвращает максимальное значение в столбце;
– AVG – вычисляет среднее значение для значений, которые помещаются в столбце.
- Свойство Active компонента ADOQuery1.
Как было сказано ранее, результат SQL -запроса отображается в компоненте DBText1. SQL -запрос формируется в компоненте ADOQuery1. Для того, чтобы SQL -запрос был доступен для отображения нужно в компоненте ADOQuery1 свойство Active установить в значение “true” (рис. 12).

Рис. 12. Свойство Active компонента ADOQuery1
- Свойство DataField компонента DBText1.
Компонент DBText1 предназначен для отображения только одного значения. Этим значением может быть результат функции агрегирования или значение текущей записи некоторого поля. Поэтому, в этом компоненте предусмотрено свойство DataField (“Поле данных»). В этом свойстве указывается поле, которое должно выводиться в DBText1.
В нашем случае поле имеет название « Сумма ». Это название было введено в тексте SQL -запроса.

Рис. 13. Свойство DataField компонента DBText1
После установления поля DataField результат суммы отобразится в компоненте DBText1 (рис. 14).

Рис. 14. Отображение суммы в компоненте DBText1
- Установка вывода результата с точностью 2 знака после запятой в компоненте DBText1.
Поскольку компонент DBText1 получает данные от компонента ADOQuery1, то нужно настроить компонент ADOQuery1.
Последовательность шагов следующая.
Вызвать редактор полей “ Form1.ADOQuery1 ” компонента ADOQuery1 из контекстного меню (см. п. 7).
В редакторе полей вызвать контекстное меню и в этом меню выбрать команду « Add all fields ” (рис. 15).

Рис. 15. Команда « Add all fields ” из редактора полей Form1.ADOQuery1
В результате будет добавлено одно поле « Сумма », которое формируется в тексте SQL -запроса. Автоматически создается объект с именем ADOQuery1Сумма .
После выделения поля « Сумма », в Object Inspector нужно установить свойство DisplayFormat в значение « 0.00 » (рис. 16).

Рис. 16. Установка вывода результата с точностью 2 знака после запятой в DBText1