powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему combox_BeforeUpdate не реагирует на Cancel = True ??
12 сообщений из 12, страница 1 из 1
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32274910
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не чует Cancel = True ??

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub combox_BeforeUpdate(Cancel As Integer)
If Not IsNull(Me.combox) Then
Set rs = db.OpenRecordset( "SELECT dateOk, id FROM predst" )
rs.FindFirst  "id="  & Me.combox
If Not rs.NoMatch And rs.Fields( "dateOk" ) < Me.ddate Then
        MsgBox  "........" 
        Cancel = True
        Me.combox.Undo
End If
End If
End Sub
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32274988
Что значит "не чует"?
Когда Cancel <> 0, вы не можете уйти с поля.
А вот Me.combox.Undo здесь не работает. По Change - да, а по BeforeUpdate только в флажках.
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32274998
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня почему тогда работает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Статус_BeforeUpdate(Cancel As Integer)
If Me.status =  0  Then
   MsgBox  "!" 
   Cancel = True
   Me.Статус.Undo
End If
End Sub
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275006
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zz

А у меня почему тогда работает?

ой да надо же!!
у меня тоже везде работает... а вот тут нет...

тогда перефразирую:
почему может не работать Cancel = True в combox_BeforeUpdate ??

2 Анатолий (Киев)

уходить не даёт, но комбобокс то обновляется...
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275022
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Артист:
А что такое вообще Апдейт в данном случае? Насколько я понимаю, это запись значения присоединенного элемента в источник записей (напр, таблица). До Обновления - значение введено в комбобокс но еще не записано. После Обновления - записано. Стало быть:
- ты выбираешь в комбо нужный элемент. Комбобоксу присваеваится его значение.
- Акс пытается записать значение в табл. Срабатывает До Обновления. И там ты отменяешь (Cancel=True) обновление.
- Все, веники. Уйти с комба не можешь, можешь только поменять значение. На допустимое.

Так что все работает.
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275050
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотел млин как у флажка отменять новое значение....
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275352
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно пойтить другим путем.

Dim V

Private Sub Combo0_AfterUpdate()
'Какое-то там условие
If Me.Combo0.Value = 1 Then
Me.Combo0.Value = V
End If
V = Me.Combo0.Value
End Sub

Т.е. в некой переменной храним предыдущее значение, и если введенное нас не устраивает, восстанавливаем старое. Только при загрузке формы надо его проинитить.
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275375
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще-то можно поставить твой селект к комбобоксу как Row Source и поставить Limit To List=true. Тогда просто нельзя будет выбрать неподходящее значение.
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275378
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, при BEFORE еще .OldValue должно быть доступно. Если было, канешна :)
'кстати спасибо, напомнили... - "сейчас мы их проверим, сейчас мы их сравним..."
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275388
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldValue доступно, но равно Value.
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275392
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же в Before нельзя значение менять...
...
Рейтинг: 0 / 0
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
    #32275467
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДЫк вЫ, батенька, с несвязанным контролом связались? У него может быть OldValue = Value, поскольку его, OldValue-то и нет (по большому счету). Потому и Cancel Вас назад не вертает. Или уж свяжите поле с чем-то, или по входу - берите старое значение в переменную, и обрабатывайте After_Update.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit
Private eOld

Private Sub ПолеСоСписком2_Enter()
    eOld = Me.ПолеСоСписком2
End Sub

Private Sub ПолеСоСписком2_AfterUpdate()
If MsgBox( "Точно?" , vbOKCancel) = vbOK Then
        eOld = Me.ПолеСоСписком2
    Else
        Debug.Print eOld &  " | "  & Me.ПолеСоСписком2
        On Error Resume Next
        Me.ПолеСоСписком2 = eOld
        Debug.Print Err.Description
    End If
End Sub
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему combox_BeforeUpdate не реагирует на Cancel = True ??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]