Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lukas
+ к варианту Анатолия:
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. Не определяет контрол при программном изменении значения поля.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.