Условие на значение по событию

simply
Дата: 21.11.2006 10:52:12
День добрый.
В подформе программно создаётся запись и на поле кол-во устанавливается фокус. Значение в этот момент =0. Необходимо что бы заставить пользователя ввести значение >0. Казалось бы чего проще но вот то что я применил на событие выход работает только при работе с клавой. Мышью же можно выйти.

If Me.поле = 0 Then
MsgBox "Введите значение >0"
Cancel = True
Else
End If
Подскажите в чем ошибка. Спасибо
Старый ворчун
Дата: 21.11.2006 11:03:45
simply
...но вот то что я применил на событие выход работает только при работе с клавой. Мышью же можно выйти.

На самом деле событие возникает и для клавы и для мыши. Просто в случае с клавой вы переходите на другое поле этой же подформы, а в случае с мышью, вы видимо переводите фокус на поле главной формы и, естественно, что событие "Выход" для поля подчиненной формы не возникает.
Вы можете использовать
1. Событие BeforeUpdate
2. Свойство поля ValidationRule
3. Событие контрола подчиненной формы Exit

Для BeforeUpdate и Exit для подч. формы вы также можете использовать Cancel.
simply
Дата: 21.11.2006 11:16:11
Я не полностью привел первоначально текст
Правильно:
Private Sub Врезерв_Exit(Cancel As Integer)
If Me.Врезерв = 0 Then
MsgBox "Введите значение >0"
Cancel = True
Else
End If
Событие контрола Exit не срабатывает, BeforeUpdate не возникает. В итоге создаётся много записей с нулевым значением
mds_world
Дата: 21.11.2006 11:22:40
Если заданное вами условие жизненно важно сделайте форму модальной.
Karfaqen
Дата: 21.11.2006 11:22:57
Вместо
Private Sub Врезерв_Exit(Cancel As Integer)
Попробуйте то же самое в
Private Sub Form_BeforeUpdate(Cancel As Integer)
подчиненной формы.
Старый ворчун
Дата: 21.11.2006 11:26:01
simply
Я не полностью привел первоначально текст
Правильно:
Private Sub Врезерв_Exit(Cancel As Integer)
If Me.Врезерв = 0 Then
MsgBox "Введите значение >0"
Cancel = True
Else
End If
Событие контрола Exit не срабатывает, BeforeUpdate не возникает. В итоге создаётся много записей с нулевым значением

я, вроде, уже ответил.
А beforeupdate возникает при изменении значения и перед его сохранением.
proposed amendment
Дата: 21.11.2006 11:27:35
simply
Необходимо что бы заставить пользователя ввести значение >0.


если для поля есть ControlSource укажите в таблице для этого поля

DefaultValue = 1
ValidationRule > 0
ValidationText = 'Введите в поле "бла-бла-бла" значение >0'

(или то же самое для поля формы)