powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос про передачу ошибки?
6 сообщений из 6, страница 1 из 1
Вопрос про передачу ошибки?
    #32476870
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно говоря, для формы есть кнопка Save.
Как при нажатии на эту кнопку передать возможную ошибку форме в событие Form_Error?

Вот код кнопки:

On Error GoTo Err_cmdSave_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox err.Description
Resume Exit_cmdSave_Click

Вот код Form_Error:

Const conErrFieldRequiered = 3101
If (DataErr = conErrFieldRequiered) Or (DataErr = 2169) Then
Response = acDataErrContinue
MsgBox "Неправильно введены данные."
Else
Response = acDataErrDisplay
End If



Все работает, только если не нажимать на эту кнопку, наверное, до Form_Error дело даже не доходит.
Подскажите, пожалуйста, что надо сделать, чтобы обработка ошибки происходила в Form_Error?
...
Рейтинг: 0 / 0
Вопрос про передачу ошибки?
    #32476873
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если не ошибаюсь, это невозможно. Form_Error обрабатывает только те ошибки, которые происходят при работе "встроенных" механизмов формы. Ошибки, происходящие в процедурах, написанных программистом, обрабатываются при помощи On Error в самих процедурах.
...
Рейтинг: 0 / 0
Вопрос про передачу ошибки?
    #32476876
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно ли как-нибудь реализовать какой-нить похожий алгоритм для обработчика нажатия кнопки?
...
Рейтинг: 0 / 0
Вопрос про передачу ошибки?
    #32476879
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Так вот же он и есть:

Err_cmdSave_Click:
MsgBox err.Description
Resume Exit_cmdSave_Click

Его можно совершенствовать до умопомрачения. Можно проверять Err, Erl и Error. Можно делать Resume на метку, Resume Next и просто Resume. Можно спрашивать у юзера, чего он хочет.
...
Рейтинг: 0 / 0
Вопрос про передачу ошибки?
    #32476915
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, написал так:
On Error GoTo Err_cmdSave_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
If (err.Number = 3101) Or (err.Number = 2169) Then
Response = acDataErrContinue
MsgBox "Неправильно введены данные."
Else
Response = acDataErrDisplay
End If
Resume Exit_cmdSave_Click

и все заработало!
...
Рейтинг: 0 / 0
Вопрос про передачу ошибки?
    #32476916
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Response - это в данном случае совершенно левая переменная. Она нигде не описана. Все обращения к ней надо убрать.

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


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