Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему combox_BeforeUpdate не реагирует на Cancel = True ?? / 12 сообщений из 12, страница 1 из 1
25.09.2003, 09:12
    #32274910
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
Почему не чует 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
25.09.2003, 10:10
    #32274988
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
Что значит "не чует"?
Когда Cancel <> 0, вы не можете уйти с поля.
А вот Me.combox.Undo здесь не работает. По Change - да, а по BeforeUpdate только в флажках.
...
Рейтинг: 0 / 0
25.09.2003, 10:13
    #32274998
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
А у меня почему тогда работает?
Код: 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
25.09.2003, 10:18
    #32275006
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
2 zz

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

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

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

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

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

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

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
25.09.2003, 13:36
    #32275375
CtrlAlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
А вообще-то можно поставить твой селект к комбобоксу как Row Source и поставить Limit To List=true. Тогда просто нельзя будет выбрать неподходящее значение.
...
Рейтинг: 0 / 0
25.09.2003, 13:37
    #32275378
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
ну, при BEFORE еще .OldValue должно быть доступно. Если было, канешна :)
'кстати спасибо, напомнили... - "сейчас мы их проверим, сейчас мы их сравним..."
...
Рейтинг: 0 / 0
25.09.2003, 13:42
    #32275388
CtrlAlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
OldValue доступно, но равно Value.
...
Рейтинг: 0 / 0
25.09.2003, 13:43
    #32275392
CtrlAlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
К тому же в Before нельзя значение менять...
...
Рейтинг: 0 / 0
25.09.2003, 14:26
    #32275467
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему combox_BeforeUpdate не реагирует на Cancel = True ??
ДЫк вЫ, батенька, с несвязанным контролом связались? У него может быть 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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему combox_BeforeUpdate не реагирует на Cancel = True ?? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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