powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Help! В каком событии можно перехватить отмену ввода записи ?
13 сообщений из 13, страница 1 из 1
Help! В каком событии можно перехватить отмену ввода записи ?
    #32147498
kav205
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая.
Редактирую запись. Первый раз нажимаю ESC - отменяется ввод в поле возникает событие "Выход", второй раз нажимаю ESC "карандаш" в маркере записи пропадает, ввод записи отменяется. Какое событие(цепочка) в форме или поле при этом происходит.
Или мне надо сделать кнопку в форме и сделать ее Cancel ?
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32147509
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
me.undo
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148053
kav205
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А событие перехватить никак ?
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148055
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде никак.
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148114
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если перехватывать нажатие Esc?
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148117
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
me.dirty
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148241
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут Me.Dirty???
Перехватывать нажатия Esc - не всегда достаточно. Например, Me.Undo - редактирование отменится, никак не отловишь.

Единственное что в голову приходит - заводить флаг. Устанавливать его на BeforeUpdate у контролов, сбрасывать на AfterUpdate, а проверять на Current (типа если пришли в Current с этим флагом - значит кто-то что-то отменил). Криво до ужаса. К тому же не сработает если в форме записей не было, пытались ввести и отменили - Current не произойдет. Ну разве что еще и на таймере проверять
Жуть в общем. Почему блин не сделали события CancelUpdate?

И еще. Кто нибудь знает как отлавливать вопросы аксеса "Предпринимается попытка вставить/удалить следующее число записей..."? Вернее, как отловить когда они будут задаваться я знаю - на событии Error (вот ни фига себе ошибка :)), но почему то они не хотят отменяться в отличие от остальных случаев. Я уж готов их продублировать чтобы хоть знать что же пользователь нажал, но хрен там. Они все равно лезут.
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148286
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
me.undo и me.dirty позволяют отследить
отменил ли пользрватель
изменение данных
в форме
я пока не пойму вопроса
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148303
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по крайней мере для А2002
можно оследить отмену
для а2000 уже нет
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148307
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Access XP уже есть событие Undo, которое можно отменить. В ранних версиях вопрос можно решить перехватом нажатия Esc. Например, так можно разрешить отмену изменений в поле, но блокировать для всей записи в целом:

Код: plaintext
1.
2.
3.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode =  27  Then If Me.Dirty And Me.ActiveControl.Text = Me.ActiveControl.OldValue Then KeyCode =  0 
End Sub


Хотя здесь лучше делать по ситуации.
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148341
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хаму
Ну извини что сразу не понял. С XP пока мало работал.
Вообще то Me.Undo и Me.Dirty - это метод и свойства, а не события :)) События без Me :)
Да, в XP с этим легче. Надо переходить.
И все таки. Отмену вставки записей через буфер обмена как нибудь отследить можно? В XP события Undo и Dirty не возникают. В 97-м хоть попадал в событие Error, в XP уже нет.
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148597
kav205
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы. А у себя сделал так:
Сделал кнопку, назначил ее как Cancel. На событие "Нажатие кнопки" повесил me.undo и еще некоторый необходимый код. Теперь даже при нажатии ESC Access сам "нажимает" эту кнопку и выполняет отмену.
Но, саму отмену это не отменяет, похоже в 97 Access это невозможно :-(
...
Рейтинг: 0 / 0
Help! В каком событии можно перехватить отмену ввода записи ?
    #32148844
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему невозможно? Отмени нажатие Esc и до кучи Ctrl+Z.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Help! В каком событии можно перехватить отмену ввода записи ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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