Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обработка ошибок? / 14 сообщений из 14, страница 1 из 1
04.04.2004, 00:01
    #32468126
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Использую Ac97 хочу сделать перехват ошибок, пишу:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
'Debug.Print "err="; DataErr
Const conAppError = 2113 ' Это номер моей ошибки

On Error Resume Next
Err.Raise lngError
If Err.Description = conAppError Then
ErrorString = AccessError(lngError)
ElseIf Err.Description = "" Then
MsgBox "Вы ввели в поле неправильный формат значения."
Else
ErrorString = Err.Description
End If
End Sub

И не работает, в чем дело, не пойму. Для Ac2000 все было проще, а в Ac97 что-то не получается.
Подскажите, пожалуйста, что делаю не так?
...
Рейтинг: 0 / 0
04.04.2004, 00:09
    #32468128
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
авторErr.Raise lngError
Это не обработка ошибки, а ее создание. Так и должно быть?

авторIf Err.Description = conAppError Then
conAppError - это число, а Err.Description - текст сообщения об ошибке. Они никогда не будут равны друг другу.
...
Рейтинг: 0 / 0
04.04.2004, 00:11
    #32468129
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Чуть сокращу..

Private Sub Form_Error(DataErr As Integer, Response As Integer)
On Error Resume Next
Err.Raise lngError
If Err.Description = 2113 Then
ErrorString = AccessError(lngError)
ElseIf Err.Description = "" Then
MsgBox "Вы ввели в поле неправильный формат значения."
Else
ErrorString = Err.Description
End If
End Sub


И что это все должно означать?..
...
Рейтинг: 0 / 0
04.04.2004, 00:11
    #32468130
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
авторElseIf Err.Description = "" Then
MsgBox "Вы ввели в поле неправильный формат значения."
И зачем выдавать такое сообщение, если Err.Description = ""?
...
Рейтинг: 0 / 0
04.04.2004, 00:12
    #32468131
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Опоздал.
Но все равно вся процедура - какой-то бред...
...
Рейтинг: 0 / 0
04.04.2004, 00:13
    #32468132
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
А! Я понил! (С)
Здесь ошибки в вопросе, а обработкой занимаемся мы. Типа, кто больше найдет.
...
Рейтинг: 0 / 0
04.04.2004, 00:21
    #32468133
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Я для Ac2000 я обычно пишу:
Const conErrFieldRequiered = 2113
If DataErr = conErrFieldRequiered Then
MsgBox "Вы ввели в поле неправильный формат значения."
Else
Respone = acDataErrDisplay
End If
но в Ac97 - не пашет.
>Здесь ошибки в вопросе, а обработкой занимаемся мы.
> Типа, кто больше найдет.
Нет, я просто попросил помощи, как сделать обработку ошибок в Ac97, может мне конечно надо было бы написать: "Сделайте за меня обработчик ошибок", но я просто написал то, что пробовал.
:-)
...
Рейтинг: 0 / 0
04.04.2004, 00:25
    #32468134
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Ну и все нормально. И в 97 должно пахать. Что именно не работает-то?
...
Рейтинг: 0 / 0
04.04.2004, 00:29
    #32468135
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
авторЯ для Ac2000 я обычно пишу:
Ну так и напиши для 97. Хотя при выполнении иф тоже response надо бы указать
...
Рейтинг: 0 / 0
04.04.2004, 00:34
    #32468136
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Опять опоздал.
Все. Работать не могу. Пойду пиво пить.
А что, ксати, за ошибка: 2113.
В хелпах не нашел...
...
Рейтинг: 0 / 0
04.04.2004, 00:39
    #32468137
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
Не то, чтобы не работает, а сначала выдает мое сообщение, а потом сообщение стандартное для Access, просто в Ac2000 выдает только одно мое сообщение, вот я и подумал, что не правильно пишу.
Я понимаю, что можно написать:
DoCmd.SetWarnings False
а потом по Goto
DoCmd.SetWarnings True
но я просто подумал, что для Ac97 есть более правильная обработка ошибок, без отключений сообщений Access, поэтому и показал код, который пытался использовать.
:-)
...
Рейтинг: 0 / 0
04.04.2004, 00:55
    #32468138
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
авторпотом сообщение стандартное для Access
на это я уже ответил:
авторпри выполнении иф тоже response надо бы указать
response=acdataerrcontinue
(или как там ее зовут - см. хелп)
авторпросто в Ac2000 выдает только одно мое сообщение
сомневаюсь...
...
Рейтинг: 0 / 0
04.04.2004, 00:56
    #32468139
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
>А что, ксати, за ошибка: 2113.
Введенное начение не подходит для данного поля. Например в числовое поле введены текст или число, превышающее предел, заданный в свойстве "Размер поля".

Я в Help тоже не нашел такого номера ошибки :-)
...
Рейтинг: 0 / 0
04.04.2004, 01:01
    #32468141
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ошибок?
2 Geo:
Спасибки, для поста от 00:39 - пока я писал следующий вопрос уже появился ответ, а в общем я все понял.
:-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обработка ошибок? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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