Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли присвоить значение для комбо на Before Update? / 18 сообщений из 18, страница 1 из 1
24.03.2020, 18:11
    #39940707
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Имеется комбо cbo1,на нем события before_update,after_update и change.Можно ли в теле события before_update присвоить значение cbo1 если например оно isnull(т.е. пользователь изменил старое на пустоту)? У меня дебагер ругается:

Sub cbo1_beforeupdate
If (isnull(me.cbo1)) Then
Me.cbo1="12345" 'тут ругается
End if
Может есть спосо как-то выйти из положения?
...
Рейтинг: 0 / 0
25.03.2020, 00:45
    #39940817
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
drafty,
правильно ругается:BeforeUpdate-до обновления(на момент выполнения кода изменение значения поля не произошло-поле не обновилось/присвоить полю значение не возможно)
AfterUpdate-после обновления
...
Рейтинг: 0 / 0
25.03.2020, 00:55
    #39940818
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления,которое следует за ним не происходит т.к. оно(событие)отменено
...
Рейтинг: 0 / 0
25.03.2020, 04:12
    #39940824
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
sdku
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления,которое следует за ним не происходит т.к. оно(событие)отменено

Тогда почему я пишу на beforeupdate строку me.cbo1.undo у меня все равно не происходит "откат" на старое значение ?
...
Рейтинг: 0 / 0
25.03.2020, 10:30
    #39940865
Можно ли присвоить значение для комбо на Before Update?
drafty
почему я пишу на beforeupdate строку me.cbo1.undo у меня все равно не происходит "откат" на старое значение ?
Ваш cbo1 привязан к полю источника формы или свободный? Если свободный, то так и должно быть.
...
Рейтинг: 0 / 0
25.03.2020, 16:13
    #39941038
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Кривцов Анатолий
drafty
почему я пишу на beforeupdate строку me.cbo1.undo у меня все равно не происходит "откат" на старое значение ?
Ваш cbo1 привязан к полю источника формы или свободный ? Если свободный, то так и должно быть.

понял,спасибо!
...
Рейтинг: 0 / 0
25.03.2020, 16:23
    #39941041
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
drafty
Кривцов Анатолий
пропущено...
Ваш cbo1 привязан к полю источника формы или свободный ? Если свободный, то так и должно быть.

понял,спасибо!

Поторопился с благодарностью,только ща проэкспиреминтировал с обычным полем(привязанным к источнику формы),все-равно не срабатывает ундо:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.NarabPKI1.Undo
    End If


а если пишу так:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.Undo
    End If


тогда срабатывает...почему?
...
Рейтинг: 0 / 0
25.03.2020, 16:51
    #39941044
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
sdku
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления ,которое следует за ним не происходит т.к. оно(событие)отменено

это открытие сегодня я уже для себя сделал(методом тыка)...
...
Рейтинг: 0 / 0
25.03.2020, 18:26
    #39941075
Можно ли присвоить значение для комбо на Before Update?
drafty
только ща проэкспиреминтировал с обычным полем(привязанным к источнику формы),все-равно не срабатывает ундо:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.NarabPKI1.Undo
    End If


а если пишу так:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.Undo
    End If


тогда срабатывает...почему?

СправкаThis method must be applied before the form or control is updated. You may want to include this method
in a form's BeforeUpdate event or in a control's Change event .
...
Рейтинг: 0 / 0
25.03.2020, 18:59
    #39941084
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
для отмены события, когда это уместно, в нем есть специальная переменная.
Код: vbnet
1.
2.
3.
4.
5.
Private Sub cbo1_BeforeUpdate(Cancel As Integer)
  If (IsNull(Me.NarabPKI1)) Then
        Cancel =true
    End If
End Sub
...
Рейтинг: 0 / 0
26.03.2020, 11:03
    #39941243
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Кривцов Анатолий
drafty
только ща проэкспиреминтировал с обычным полем(привязанным к источнику формы),все-равно не срабатывает ундо:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.NarabPKI1.Undo
    End If


а если пишу так:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI1)) Then
        Me.Undo
    End If


тогда срабатывает...почему?

СправкаThis method must be applied before the form or control is updated . You may want to include this method
in a form's BeforeUpdate event or in a control's Change event .

...шо мы и робим
...
Рейтинг: 0 / 0
26.03.2020, 11:04
    #39941244
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
alecko
для отмены события, когда это уместно, в нем есть специальная переменная.
Код: vbnet
1.
2.
3.
4.
5.
Private Sub cbo1_BeforeUpdate(Cancel As Integer)
  If (IsNull(Me.NarabPKI1)) Then
        Cancel =true
    End If
End Sub


т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
...
Рейтинг: 0 / 0
26.03.2020, 11:56
    #39941275
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
drafty, в полях со списком сверху в редакторе или в поле свойств этого поля со со списком найдите это свойство, если в модуле класса, то корректно обозначьте элемент управления, что это именно combobox, а не control, например, итак сверху в редакторе находите этот контрол выбираете его и он вобщем-то сразу по умолчанию создаст событие как раз (редко кстати используемое) _beforeapdate, со всеми нужными переменными.
...
Рейтинг: 0 / 0
26.03.2020, 12:01
    #39941281
Можно ли присвоить значение для комбо на Before Update?
drafty
т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
Не откат. Присвоение аргументу Cancel не нулевого значения запрещает обновление контрола. Т.е. если "пользователь изменил старое на пустоту", то программа не пустит его дальше, пока он не укажет допустимое значение.
Что касается метода Undo, то он возвращает контролу исходное значение. Например, если вы перешли на запись со значением 1 в поле, затем поменяли на Null , затем на 2, затем на 3 (изменения еще не сохранены) то Undo вернет туда 1 (из св-ва OldValue), а не 2, как вы, возможно, хотели.
...
Рейтинг: 0 / 0
26.03.2020, 14:37
    #39941363
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Кривцов Анатолий
drafty
т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
Не откат. Присвоение аргументу Cancel не нулевого значения запрещает обновление контрола. Т.е. если "пользователь изменил старое на пустоту", то программа не пустит его дальше, пока он не укажет допустимое значение.
Что касается метода Undo, то он возвращает контролу исходное значение. Например, если вы перешли на запись со значением 1 в поле, затем поменяли на Null , затем на 2, затем на 3 (изменения еще не сохранены) то Undo вернет туда 1 (из св-ва OldValue), а не 2, как вы, возможно, хотели.

т.е. метод UNDO не возвращает исходное значение поля,если оно было впоследствии заменено с единицы например - на пустоту?
...
Рейтинг: 0 / 0
26.03.2020, 14:57
    #39941379
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
alecko
то корректно обозначьте элемент управления, что это именно combobox, а не control, например, итак сверху в редакторе находите этот контрол выбираете его и он вобщем-то сразу по умолчанию создаст событие как раз (редко кстати используемое) _beforeapdate, со всеми нужными переменными.
не учите плохому начинающих
...
Рейтинг: 0 / 0
26.03.2020, 15:09
    #39941388
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
drafty

....
т.е. метод UNDO не возвращает исходное значение поля,если оно было впоследствии заменено с единицы например - на пустоту?
метод UNDO всегда вернет исходное(последнее СОХРАНЕННОЕ значение,которое и будет "исходное значение"-а когда изменения сохраняются?)-о чем Вам и толкует Кривцов Анатолий
...
Рейтинг: 0 / 0
26.03.2020, 16:20
    #39941433
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли присвоить значение для комбо на Before Update?
Кривцов Анатолий
drafty
т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
Не откат. Присвоение аргументу Cancel не нулевого значения запрещает обновление контрола. Т.е. если "пользователь изменил старое на пустоту", то программа не пустит его дальше, пока он не укажет допустимое значение.
Что касается метода Undo, то он возвращает контролу исходное значение. Например, если вы перешли на запись со значением 1 в поле, затем поменяли на Null , затем на 2, затем на 3 (изменения еще не сохранены) то Undo вернет туда 1 (из св-ва OldValue), а не 2, как вы, возможно, хотели.


Что же вы не сказали,что правильно писать вот так:
Код: vbnet
1.
2.
3.
4.
    If (IsNull(Me.NarabPKI4)) Then
         Me.NarabPKI4.Undo
         Cancel = True
    End If



в том варианте,что я писал:
Код: vbnet
1.
2.
3.
    If (IsNull(Me.NarabPKI4)) Then
         Me.NarabPKI4.Undo
    End If


у меня отката не происходило,а теперь происходит,надо было добавить в конструкцию после ундо строку Cancel = True ...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли присвоить значение для комбо на Before Update? / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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