powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли присвоить значение для комбо на Before Update?
18 сообщений из 18, страница 1 из 1
Можно ли присвоить значение для комбо на Before Update?
    #39940707
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется комбо 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
Можно ли присвоить значение для комбо на Before Update?
    #39940817
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty,
правильно ругается:BeforeUpdate-до обновления(на момент выполнения кода изменение значения поля не произошло-поле не обновилось/присвоить полю значение не возможно)
AfterUpdate-после обновления
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39940818
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления,которое следует за ним не происходит т.к. оно(событие)отменено
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39940824
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления,которое следует за ним не происходит т.к. оно(событие)отменено

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

понял,спасибо!
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941041
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Можно ли присвоить значение для комбо на Before Update?
    #39941044
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Вдогонку:событие BeforeUpdate часто используется для проверки условия на значение и если значение валидно поле обновляется, а если нет событие отменяется-обновления ,которое следует за ним не происходит т.к. оно(событие)отменено

это открытие сегодня я уже для себя сделал(методом тыка)...
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941075
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
Можно ли присвоить значение для комбо на Before Update?
    #39941084
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
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941243
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
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
Можно ли присвоить значение для комбо на Before Update?
    #39941244
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Можно ли присвоить значение для комбо на Before Update?
    #39941275
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty, в полях со списком сверху в редакторе или в поле свойств этого поля со со списком найдите это свойство, если в модуле класса, то корректно обозначьте элемент управления, что это именно combobox, а не control, например, итак сверху в редакторе находите этот контрол выбираете его и он вобщем-то сразу по умолчанию создаст событие как раз (редко кстати используемое) _beforeapdate, со всеми нужными переменными.
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941281
drafty
т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
Не откат. Присвоение аргументу Cancel не нулевого значения запрещает обновление контрола. Т.е. если "пользователь изменил старое на пустоту", то программа не пустит его дальше, пока он не укажет допустимое значение.
Что касается метода Undo, то он возвращает контролу исходное значение. Например, если вы перешли на запись со значением 1 в поле, затем поменяли на Null , затем на 2, затем на 3 (изменения еще не сохранены) то Undo вернет туда 1 (из св-ва OldValue), а не 2, как вы, возможно, хотели.
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941363
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
drafty
т.е. откат значения поля произойдет,если вписать аргумент Cancel As Integer ?
Не откат. Присвоение аргументу Cancel не нулевого значения запрещает обновление контрола. Т.е. если "пользователь изменил старое на пустоту", то программа не пустит его дальше, пока он не укажет допустимое значение.
Что касается метода Undo, то он возвращает контролу исходное значение. Например, если вы перешли на запись со значением 1 в поле, затем поменяли на Null , затем на 2, затем на 3 (изменения еще не сохранены) то Undo вернет туда 1 (из св-ва OldValue), а не 2, как вы, возможно, хотели.

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

....
т.е. метод UNDO не возвращает исходное значение поля,если оно было впоследствии заменено с единицы например - на пустоту?
метод UNDO всегда вернет исходное(последнее СОХРАНЕННОЕ значение,которое и будет "исходное значение"-а когда изменения сохраняются?)-о чем Вам и толкует Кривцов Анатолий
...
Рейтинг: 0 / 0
Можно ли присвоить значение для комбо на Before Update?
    #39941433
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
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
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли присвоить значение для комбо на Before Update?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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