Автосумма В Форме

  • Автор темы Sadus
  • Дата начала
S

Sadus

Гость
#1
Здравствуйте. Возможно моя тема поднималась, и не раз, но найденые варианты были неприемлемы для моей цели. Так что прошу помощи тут.

Ситуация: есть БД (MC Access). Форма составленная из главной, и зависимой. В зависимой форме, у нас находятся итого по позициям (!). В главной форме, есть поле "Итог" которое должно суммировать значение полей из зависимой формы. И заносит в таблицу.


http://i30.fastpic.ru/big/2011/1121/6b/86e...cf476a8266b.jpg

Вот схематично что требуется. Прошу вашей помощи, или совета в какую сторону хотя бы копать. Пробовал через запрос, но успехов нет.
 

BOPOHA

Well-Known Member
26.04.2006
118
0
#2
На подчиненную форму добавляем событие, которе вызывается при изменении этого поля, уделения/добавления записи. Данное событие содержит только однин параметр: сумма. Естественно сумма расчитывается перед генерацией событие.

Обработчиком события будет главная форма. В обработчике события остается только сохранить переданную сумму в нужное поле.

Вот тут можно прочитать про события подробнее: http://5codelines.net/events1/
 
S

Sadus

Гость
#4
BOPOHA, немного понял. Но как конкретно считать Итог (автосумму итогов по позиции). Ведь сначала нужно посчитать его, а потом уже передавать в гл. форму

upd1: проблема ещё и в том, что ИтогПозиции не заносится как таковой в таблицу, и через запрос не считается его автосумма.

upd2: смог посчитать Итог (автосумму ИтогПозиции) через 2 запроса.
Первый:
Код:
SELECT Т_Работы.ВидРабот, [Ширина]*[Длинна] AS Площадь, [Стоимость (кв\\м)]*[Площадь] AS ИтогПозиции
FROM Т_ВидыРабот INNER JOIN Т_Работы ON Т_ВидыРабот.Id = Т_Работы.ВидРабот
WHERE (((Т_Работы.Код_Заказа)=[Forms]![Ф_Заказы]![Id]));
Второй:
Код:
SELECT Sum(ИтогПозиции.ИтогПозиции) AS ОбщИтог
FROM ИтогПозиции;
Т.е как бы один запрос считает ИтогПозиции, второй запрос делает автосумму. К сожалению более ничего умнее не придумал(