powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма из подчиненной формы
15 сообщений из 15, страница 1 из 1
Сумма из подчиненной формы
    #39610457
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть главная форма Ф1 и подчиненная форма Кг; На главной форме есть поля Поле30 и Поле39.
При переходе по записям подчиненной формы, в Поле30 надо вывести дату текущей записи подчиненной таблицы, в Поле39 сумму всех полей "кг" подчиненной таблицы за эту дату.


В событии подчиненной формы "Текущая запись" пишу:
Me.Parent.Поле30 = Me.Дата
Me.Parent.Поле39 = DSum("[кг]", "[кг]", "[Дата]=" & Me.Parent.Поле30)

В результате в Поле30 получаю значение [Дата] текущей записи подчиненной формы,
а на вторую строку ругается:
"Run-time error '3075':
Число содержит синтаксическую ошибку в выражении запроса ’[Дата] =02.03.201'. "


Помогите пожалуйста написать правильно. Может есть способ другим способом реализовать это?
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610469
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauf,

Me.Parent.Поле39 = DSum("[кг]", "[кг]", "[Дата]=" & Me.Дата)

or

Me.Parent.Поле39 = DSum("[кг]", "[кг]", "[Дата]=" & Format(Me.Дата, "Short Date"))

А, вообще, не понятно, для чего надо переность на шлавную то, что и так видно в подчиненной...

PS
Дай контролам Поле39, Поле30 осознанные имена. Иначе, уже через неделю будешь ломать голову над тем, что они значат и для чего были сделаны...
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610516
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел оба варианта. Та же ошибка.


В подчиненной форме за одну дату может быть от одного до десяти записей. Поэтому удобно видеть на главной форме сумму всех значений за конкретную дату.
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610532
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauf,
Код: vbnet
1.
Dsum("имяПоляСоЗначениями","имяТаблицы","дата=#" & Format(me.дата,"mm\/dd\/yy") & "#"
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610544
В функциях DLookup, DSum и т.п. дата должна иметь такой же вид, как и в запросе, т.е MM/DD/YY.
Если вам это нужно для "удобно видеть", то сделайте поля вычисляемыми:
В св-ве "данные поля Поле30:
=[Имя элемента с подчиненной формой].Form![Дата]

В св-ве "данные поля Поле39:
=DSum("[кг]"; "[кг]";"[Дата]=" & Format(Поле30;"\#MM\/DD\/YY\#"))

И ни строчки кода.
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610549
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем. Работает как подсказал sdku и Анатолий.
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610590
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я извиняюсь. Сделал как советовал Анатолий, но это работает на первой записи главной формы. На других записях главной формы поле30 показывает дату, а поле39 пустое и ошибок нет!
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610594
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauf,
а какое событие и в какой форме Вы обрабатываете?
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610614
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufЕсть главная форма Ф1 и подчиненная форма Кг; На главной форме есть поля Поле30 и Поле39. ....
В событии подчиненной формы "Текущая запись" пишу:....при этом ссылка на поле главной формы должна быть полной
Код: vbnet
1.
2.
3.
Private Sub Form_Current() 'в подчиненной форме
forms!главная.поле39=Dsum("имяПоляСоЗначениями","имяТаблицы","дата=#" & Format(me.дата,"mm\/dd\/yy") & "#"
End sub
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610618
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку:
это относится и к полю30 (дата)
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610623
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, на первой записи главной формы работает и первый и второй Ваш вариант, на следующих записях не работает и ошибки не показывает.
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610894
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauf,
покажте БД(или её проблемную часть)-я смутно подозреваю что схема не правильная
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610957
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В подчиненной таблице может быть несколько записей с одной датой.При вводе (просмотре) новых данных в подчиненную таблицу нужно видеть сколько всего "кг" за дату текущей записи. Я создал два поля "Поле30" и "Поле39" на главной форме. В событии "Текущая запись" в подчиненной форме записал:
Me.Parent.Поле30 = Me.Дата
Forms![Ввод данных].Поле39 = DSum("[кг]", "[Кг]", "[Дата]=#" & Format(Me.Дата, "mm\/dd\/yy") & "#")
На перовой записи главной формы работает правильно. На следующих записях Поле30 выводится, а Поле39 - пустое.
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39610969
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте, что в колонке [Дата] нет ненулевого времени, иначе ничего не будет находиться.
Ну или просто отбирайте по интервалу в один день:
Код: vbnet
1.
DSum("[кг]", "[Кг]", "[Дата]>=#" & Format(Me.Дата, "mm\/dd\/yy") & "# and [Дата]<#" & Format(Me.Дата, "mm\/dd\/yy") & "# + 1")
...
Рейтинг: 0 / 0
Сумма из подчиненной формы
    #39611280
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю насколько правильно понял задачу,но я бы решал ее так (форма расход)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма из подчиненной формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]