Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Пересчет сумм в поле главной формы  [new]
vad-anatolij
Member

Откуда: Россия, Урал
Сообщений: 716
В главной форме объявляю

Public Sub RecalcPrilochz()
Me.Поле13 = Nz(DSum("[прогноз]", "запрос"), 0)
End Sub

В подчиненной
Private Sub Form_AfterUpdate()
On Error Resume Next
Me.Parent.RecalcPrilochz
End Sub

Все работает, т.е. при переходе на следующую запись, сумма пересчитыывается, но мне нужно,что бы пересчет поля главной формы делался после обновления конкрентого поля [поле2] в подчиненной форме. Для этого в подчиненной сделал:

Private Sub поле_2_AfterUpdate()
Me.Parent.RecalcPrilochz
End Sub

Но пересчета не происходит, что я не учел? Спасибо.
8 фев 07, 08:35    [3753809]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
при апдейте поля запись не апдейтится
8 фев 07, 09:18    [3753914]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
ILL HEAD
при апдейте поля запись не апдейтится
и собсно рецепт - Me.Recordset.Requery в sub Private Sub поле_2_AfterUpdate()
8 фев 07, 09:22    [3753934]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
vad-anatolij
Member

Откуда: Россия, Урал
Сообщений: 716
ILL HEAD
и собсно рецепт - Me.Recordset.Requery в sub Private Sub поле_2_AfterUpdate()


При этом возникает другая проблема, после пересчета фокус переходит на первую запись подчиненной формы (она ленточная)..как вернуть его на ту же запись?
8 фев 07, 09:50    [3754072]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
vad-anatolij
Member

Откуда: Россия, Урал
Сообщений: 716
Сорри..вопрос известен на форуме, сам разобрался..Спасибо.
8 фев 07, 09:56    [3754118]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
vad-anatolij
Member

Откуда: Россия, Урал
Сообщений: 716
Сделал так...

Private Sub поле2_AfterUpdate()
On Error Resume Next
bm = Me.Bookmark
Me.Requery
Me.Parent.RecalcPrilochz
Me.Bookmark = bm
End Sub

Но перерасчет происходит только при РЕДАКТИРОВАНИИ записи...а при внесении НОВОЙ записи нет. Почему? Спасибо.
12 фев 07, 07:41    [3769468]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
потомучто после поле_afterudate для НОВОЙ записи в БД еще не существует записи (извиняюсь за тафталогию)
12 фев 07, 08:06    [3769493]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
vad-anatolij
Member

Откуда: Россия, Урал
Сообщений: 716
ILL HEAD
потомучто после поле_afterudate для НОВОЙ записи в БД еще не существует записи...


А какой выход, если мне нужно что бы перерасчет был в обоих случаях?
12 фев 07, 10:09    [3769862]     Ответить | Цитировать Сообщить модератору
 Re: Пересчет сумм в поле главной формы  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
в первых сообщения был ответ
вернуться на "новую" запись после REQUERY можно запомнив перед этим значение ключевого поля (оно уже существует если это счетчик) а не BOOKMARK
и после сделать me.recordset.findfirst "ключевое_поле=" & cstr(значение_которое_запомнили)

у вас On Error Resume Next - 100% это подавляет ошибку присвоения BOOKMARK для новой записи ;)
12 фев 07, 10:36    [3770043]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить