2015-10-28 2 views
0

Я создал выражение, чтобы добавить 3 текстовых поля вместе в 4-ое полное поле. Выражение:Преобразование выражения в VBA при доступе

=Cdbl(Nz[txtPart1],0)) + Cdbl(Nz[txtPart2],0)) + Cdbl(Nz[txtPart3],0)) 

Я пытаюсь преобразовать это в VBA код, потому что форма я создал так много вещей, на нем работает вот почему расчет идет медленно. Я хочу добавить часовое стекло, чтобы пользователь не думал, что программа не работает. Я попытался поместить код, который суммирует 3 в событии после обновления всех трех текстовых полей, но это не сработало. Пожалуйста помоги!

У меня есть этот код в AfterUpdate из 3 текстовых полей:

me.total = me.txtpPart1 + me.txtPart2 + me.txtPart3 

Благодарности

+0

Это выражение очень быстро, так что вы, возможно, придется искать в другом месте для оптимизации. И это _will_ работать, если ваши текстовые поля содержат цифры, так что ваш код, пожалуйста? – Gustav

+0

Я добавил свой код, который у меня есть к сообщению –

+0

Тестирование с использованием свойства * Timer Interval * для времени *. Это делает «четвертую полную коробку» более отзывчивой? Казалось, в моей копии вашего db. – HansUp

ответ

2

Тогда вы могли бы использовать:

Me!Total.Value = 0 
' Ignore error from non-numeric input. 
On Error Resume Next 
Me!Total.Value = CDbl(Nz(Me!txtPart1.Value, 0)) + CDbl(Nz(Me!txtPart2.Value, 0)) + CDbl(Nz(Me!txtPart3.Value, 0)) 
+0

Итак, я должен положить это в afterupdate каждого из трех текстовых полей? –

+0

Нет. Вы сохранили бы его в функции, называемой «UpdateTotal», а затем вызовите эту функцию из трех событий «AfterUpdate». – Gustav

Смежные вопросы