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

Тема в разделе "Остальные БД", создана пользователем Sadus, 21 ноя 2011.

  1. Sadus

    Sadus Гость

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

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


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

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

    BOPOHA Well-Known Member

    Репутация:
    0
    Регистрация:
    26 апр 2006
    Сообщения:
    118
    Симпатии:
    0
    На подчиненную форму добавляем событие, которе вызывается при изменении этого поля, уделения/добавления записи. Данное событие содержит только однин параметр: сумма. Естественно сумма расчитывается перед генерацией событие.

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

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

    Sadus Гость

    Репутация:
    0
  4. Sadus

    Sadus Гость

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

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

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

Поделиться этой страницей