|
|
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
Собственно говоря, для формы есть кнопка 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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 20:29 |
|
||
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
Если не ошибаюсь, это невозможно. Form_Error обрабатывает только те ошибки, которые происходят при работе "встроенных" механизмов формы. Ошибки, происходящие в процедурах, написанных программистом, обрабатываются при помощи On Error в самих процедурах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 20:31 |
|
||
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
А можно ли как-нибудь реализовать какой-нить похожий алгоритм для обработчика нажатия кнопки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 20:41 |
|
||
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
Так вот же он и есть: Err_cmdSave_Click: MsgBox err.Description Resume Exit_cmdSave_Click Его можно совершенствовать до умопомрачения. Можно проверять Err, Erl и Error. Можно делать Resume на метку, Resume Next и просто Resume. Можно спрашивать у юзера, чего он хочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 20:45 |
|
||
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
Спасибо, написал так: 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 и все заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 23:11 |
|
||
|
Вопрос про передачу ошибки?
|
|||
|---|---|---|---|
|
#18+
Response - это в данном случае совершенно левая переменная. Она нигде не описана. Все обращения к ней надо убрать. Раз Аксесс на нее не закричал - это значит, что в начале модуля не поставлено Option Explicit. Это плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2004, 23:14 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1650&tid=1675413]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 377ms |

| 0 / 0 |
