У меня есть подчиненная форма (непрерывный режим) в моей основной форме, которая используется для добавления некоторых статей с описанием, количеством и ценой.В нижнем колонтитуле этого sumform находится текстовое поле, которое суммирует все записи подчиненной формы, используя =sum([amount] * [price])
.Пока это работает.
Каждый раз, когда я добавляю новую запись в подчиненную форму, вычисляется это текстовое поле.Теперь я также хочу поместить эту сумму в текстовое поле моей основной формы (что на самом деле также не является проблемой).В «AfterUpdate
» - событии моего combofield
в непрерывной форме я записываю значение sum-textfield
в мое текстовое поле в основной форме.Это изначально также работало отлично.
Но теперь (я понятия не имею, что изменилось), мое текстовое поле в основной форме не получает новое значение, потому что код vba
работает быстрее, чем вычисленное текстовое поле в моем нижнем колонтитуле подсчета, вычисляет его новоезначение.Он всегда записывает старое значение в основную форму.Я обнаружил проблему с использованием тормозных точек в моем коде.Таким образом, старое значение записывается в основную форму до завершения доступа, вычисляя сумму всех записей подчиненной формы.
Вот код, который я использую для записи значения из моего текстового поля подчиненной формы в мое текстовое поле основной формы:
Private Sub txt_Article_AfterUpdate()
Me.Refresh
Me.Parent!txt_Amount = Int(Me.txt_SumOfAmountsInContinuousForm * 20 + 0.5) / 20
End Sub
Надеюсь, описание моей проблемы несколько понятно.Это немного сложно описать :) Есть ли способ подождать с моим кодом VBA, пока в поле sum не будет вычислено новое значение?
Спасибо