Все,
У меня возникли некоторые проблемы с итогами при использовании функции DSUM.
У меня есть форма Main и подчиненная форма (подробности). Подформа отображается в виде таблицы внутри главной формы.
Подформа содержит OppL_ID (PK, autonumber), Opp_ID (FK, присутствует несколько раз), Product, Unit, Unit unit Price. Теперь я хочу рассчитать общий доход за Opp_ID в главной форме. В основной форме выбран Opp_ID, несколько строк с продуктами показаны в подчиненной форме, связанной с этим Opp_ID. Если пользователь вводит данные в представление таблицы, доход должен быть снова рассчитан напрямую.
Сначала я пытаюсь заставить формулу работать в нижнем колонтитуле подчиненной формы. Но я не могу получить правильную сумму дохода. Теперь я добавил в запрос подчиненной формы Выручка: [Единицы] * [Цена за единицу]. Это отображает доход на уникальную строку. Я хочу доход по Opp_ID, поэтому я попробовал функцию DSUM.
То, что я пытался:
- Для суммирования дохода по Opp_ID я использовал формулу: DSUM ([Units] * [Цена за единицу]; "Qry_lines"; "[Opp_ID] =" & [Opp_ID])
- Вместо этого я также использовал имена элементов управления: DSUM ([txt_Units] * [txt_Unit Price]; "Qry_lines"; " [Opp_ID] = "& [Opp_ID])
- Я также пытался сослаться на поле Доход: DSUM ([Доход];" Qry_lines ";" [Opp_ID] = "& [Opp_ID])
Все формулы заканчиваются в результате:
Пример:
Opp_ID 51 состоит из двух строк с продуктами A и B, Строка продукта A = Единицы 1 Цена за единицу 20 Линия продукта B = Единицы 2 цена за единицу 30.
Результат: Если я стою на A, общий доход составит 40, а на линии продукта B 120.
Я ожидаю только одна цифра: 1 * 20 + 2 * 30 = 80
Похоже, это рассчитанный доход умноженный на количество строк? Что я делаю не так?
Я также пытался создать запрос суммы и сослаться на него, например:
Выберите Qry_lines.Opp_ID, Sum (Qry_lines.Revenue) в качестве SumofRevenue FROM Qry_lines Group by Qry_lines.Opp_ID.
Теперь я получаю правильную цифру для Opp_ID. Только я не могу сослаться на это в моей форме? Может быть, с Dlookup?
Я думаю, что я близко, но я не могу это сделать. Пожалуйста, помогите:)