Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Событие формы BeforeUpdate
 
 автор: koren   (01.03.2010 в 11:34)   личное сообщение
 
 

Можно ли при обработке события формы BeforeUpdate узнать, какой именно элемент управления вызвал это событие?

  Ответить  
 
 автор: Анатолий (Киев)   (01.03.2010 в 14:51)   личное сообщение
 
 

Тот, у которого NZ(.Value) <> NZ(.OldValue)

  Ответить  
 
 автор: Lukas   (01.03.2010 в 15:39)   личное сообщение
 
 

+ к варианту Анатолия:
1. Если изменить значение поля, а потом не покидая записи вернуть в исходное (например True-False-True), то не удастся определить, так как .Value=.OldValue
2. Если изменялись несколько полей, получим несколько контролов, а какой именно (первый) вызвал событие Dirty? Но может это и неважно.
3. Вариант позволяет определить изменения, внесенные программно.

Исчо вариант:

Private ctrl As Control

Private Sub Form_Dirty(Cancel As Integer)
    Set ctrl = Me.ActiveControl
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    MsgBox ctrl.Name
    Set ctrl = Nothing
End Sub

Этот вариант:
1. Однозначно определяет первый контрол, который вызвал событие изменения записи, даже если его значение вернули взад.
2. Не определяет контрол при программном изменении значения поля.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList