powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Конфликт двух событий
25 сообщений из 29, страница 1 из 2
Конфликт двух событий
    #32128405
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На форме есть текстбокс и кнопка. У текстбокса есть AfterUpdate, а у кнопки OnClick. Курсор стоит на текстбоксе, я кликаю мышкой по кнопке. И почему-то AfterUpdate текстбокса срабатывает, а OnClick кнопки нет, только фокус на кнопку переходит. Если кликнуть второй раз, то срабатывает и OnClick. Кто-нибудь сталкивался? Спасибо заранее всем.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128425
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поле перед нажатием на кнопку обновлялось?

Если нет, тогда интересно.
Если да, то при нажатии на кнопку должны сначала отработать события относящиеся к полю
AfterUpdate -> Lost Focus
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128433
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> А поле перед нажатием на кнопку обновлялось?

Конечно, иначе бы AfterUpdate не сработал.

> Если нет, тогда интересно.

:^) Мне как раз интересно так, как у меня.

> Если да, то при нажатии на кнопку должны сначала отработать события относящиеся к полю AfterUpdate -> Lost Focus

Но после "сначала" должно наступить "потом"?
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128441
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно проблема в самих обработчиках событий.
Я смоделировал такую ситуацию - отрабатывают оба события
После "перед" "Потом" все-таки наступает :)
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128443
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Возможно проблема в самих обработчиках событий.

Видимо, да. Потому что эта форма работала, пока я не добавил в тот AfterUpdate новую строчку:

Peremennaya = True

А что теперь делать-то?
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128457
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы что-то посоветовать не хватает данных.

Режим: adp или mdb?
Форма: простая или ленточная?
Контролы: в одном разделе или в разных?

Может у Вас между этими событиями еще какое-то вклинивается?
Ну и какой текст обработчиков событий?

Все эти вопросы, может быть и не имеют значения, но по крайней мере дают общую картину.
А бывает еще, что кому-то начинаешь объяснять в чем проблема более подробно и тут сам обнаруживаешь ошибку на самом видном месте.
Как говорится: "а слона-то мы и не заметили" :)
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128460
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 2000 аксесе у меня весьма часто просто обработчик событий, т.е. функция типа Btn_OnClick есть, а в пропертях кнопки напротив данного события пусто.
Может, здесь та же фигня?
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128469
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Режим: adp или mdb?

mdb, Access 97.

> Форма: простая или ленточная?

Простая.

> Контролы: в одном разделе или в разных?

В одном.

> Может у Вас между этими событиями еще какое-то вклинивается?

Не нахожу такого события.

> Ну и какой текст обработчиков событий?

Private Sub TheText_AfterUpdate()
UpdateField "TheText", "", Me!TheText
Peremennaya = True 'до добавки этой строчки все работало!
End Sub

Private Sub TheButton_Click()
Me!OtherControl.SetFocus
Me!TheButton.Enabled = False
EvtPostVar Evt_CloseProp, False
Me!TheButton.Enabled = True
End Sub
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128473
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
To Лох Позорный:

Я же говорю: если кликнуть второй раз, то срабатывает и OnClick. Так что Ваша гипотеза не подтвердилась. :^)
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128488
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не понятно что такое UpdateField...
И очень смущает обработчик кнопки - это наверное предотвращение повторного нажатия?
Ну это не совсем по теме :)

А по теме могу только посоветовать:
- попробовать трассировать, поставить точку останова и там и там
- наставить через каждый шаг Debug.Print "1", 2, 3.....
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128504
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Немного не понятно что такое UpdateField...

Некая моя процедура, как и EvtPostVar.

> И очень смущает обработчик кнопки - это наверное предотвращение повторного нажатия?

Так точно. :^)

> - попробовать трассировать, поставить точку останова и там и там
> - наставить через каждый шаг Debug.Print "1", 2, 3.....

Так ведь все известно. В AfterUpdate заходит, а в OnClick нет. А что там между ними происходит - Билл Гейтс его знает...
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128547
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так Вы же сами говорите, что перестало работать после ...

Вот и посмотрите в отладчике что происходит.
Заремить одну строку и еще раз посмотреть.
У меня никак не получается добиться такого результата как у Вас - все обработчики работают.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32128581
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Повторяю, я не могу пользоваться отладчиком в тех частях программы, которые находятся между событиями и подвластны одному Биллу Гейтсу.

Ау, люди, я ищу кого-нибуль, кто сталкивался с этой проблемой...
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130319
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ау...
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130358
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупой вопрос: При пошаговой трассировке (от любого места в TheText_AfterUpdate) попадаете ли на TheButton_Click ? (что-то такого рода иногда возникает при Docmd.Close и т.п. - на одних машинах [всегда] закрывается один объект, - на других - другой, т.е. порядок событий начинает зависеть от черт знает чего, и приходится явно задавать имена, видимо ассинхронные процессы - "нити" имеют место :)

(есть многое на свете, в том числе и промежуточные, в т.ч. обрабатываемые события могут быть задействованы). Если да (т.е. переход при пошаговой обработке имеет место), и никаких промежуточных событий не возникает - тогда можно полагать, что проблема во внутренностях Access. При простой расстановке ваших обработчиков (с заглушками процедур) в форме ваша ситуация не воспроизводится, оба события возбуждаются. С полагающейся регулярностью.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130401
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> При пошаговой трассировке (от любого места в TheText_AfterUpdate) попадаете ли на TheButton_Click ?

100% - нет. Там на Click такого понаписано (обращение к AS/400 и прочая, прочая)... Если бы оно вызывалось где не надо - был бы кошмар.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130414
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомневаюсь, что поможет, но все же - попробуйте до и после выполнения "длинных" операций поставить
DoEvents
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130418
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Где? В AfterUpdate? Там длинных операций нет.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130426
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хоть бы и в конце процедуры AfterUpdate.
Что ж поделаешь, не получается получить такую же ситуацию, вот и идут предложения из области "а попробуйте бутылку возле монитора поставить" :)

Мне, например, DoEvents, помогло в такой ситуации - после открытия формы, вызывались еще функции, которые изменяли внешний вид формы. Так вот на Access 2000 все работало, а при переходе на 2002 пока после оператора открытия формы не поставил DoEvents выдавало ошибку.
Видать 2002 чуть по-другому рисует формы.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130455
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Попробую, спасибо. Вообще, я знал, что DoEvents иногда помогает, но тут показалось, что не тот случай...
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130523
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу ещё посоветавать назначать фокус кнопке
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130537
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Каким образом назначать? На OnClick делать SetFocus???
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130544
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте кнопка.SetFocus повесить последним оператором на
текстбокс.AfterUpdate
тогда при нажатии точно должно отрабатывать с первого раза
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32130738
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> попробуйте кнопка.SetFocus повесить последним оператором на текстбокс.AfterUpdate

Увы, это противоречит логике программы. Фокус не должен перескакивать на кнопку после каждого AfterUpdate.
...
Рейтинг: 0 / 0
Конфликт двух событий
    #32132029
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Полный абзац. Сегодня оказалось, что абсолютно та же проблема с абсолютно идентичными симптомами (!!!) имеется и в JavaScript'е. Только там не AfterUpdate, а onblur.

Видимо, клик собирается произойти, но видит, что какое-то предыдущее событие исполняется, и не дождавшись уходит...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Конфликт двух событий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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