MS Access: вычисляемое поле медленнее, чем код VBA - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть подчиненная форма (непрерывный режим) в моей основной форме, которая используется для добавления некоторых статей с описанием, количеством и ценой.В нижнем колонтитуле этого 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 не будет вычислено новое значение?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...