Работа над ошибками - это искусство, об этом постоянно пишут Литвин, Гетц, Гилберт... и Silich =o)
Tatiana 18.05.2001
От: Tatiana 18.05.2001 11:47:22 Корректная обработка ошибок Помогите решить следующую проблему: есть необходимость запретить ввод более чем одного документа на один автомобиль, поэтому внешний ключ таблицы документов был проиндексирован с запретом повторений. Естественно, при попытке ввода 2-го документа на одну и ту же машину в форме Access выдает дикую ругань (с позиции пользователя - ну СОВЕРШЕННО непонятную!) Попытка заменить это странное, малосодержательное сообщение уже который раз не приводит к успеху :((( Использовался перехват ошибки в модуле ПослеОбновления для поля внешнего ключа (подстановка из справочника автомобилей), оператор On Error GoTo <метка>. Access упорно продолжает генерировать ошибку с кодом 0 , моя подпрограмма отрабатывает, и после ее завершения вылетает злополучное сообщение об ошибке, отключить (заменить) которое я и пытаюсь :((( Параметры запуска и Настройки (в том числе перехвата ошибок) также не дают желаемого результата. Метод DoCmd.SetWarnings (False) не отключает модальные сообщения... ЧТО ДЕЛАТЬ???
Mike 18.05.2001
От: Mike 18.05.2001 11:58:38 Re:Корректная обработка ошибок Если нельзя это окошко убрать, значит надо предотвратить его появление :) Сделай проверку корректности ввода _до_того_ , как запись добавляется в таблицу.
silich 18.05.2001
От: silich 18.05.2001 12:42:31 есть такое замечательное св-во Form_Error
On Error GoTo err4563541 Select Case DataErr Case 3022: MsgEgor "'" + UCase(CStr(Me(Screen.ActiveControl.name))) + "' уже есть в базе!" Case 3314: MsgEgor "Поле 'Сокращение' не допускает ввода пустых строк!" Case 3200: MsgEgor "Вы не можете удалить эту запись !!!" + Chr(10) + "Данные задействованы в базе данных." Case Else: MsgEgor "Ошибка:" + CStr(DataErr) + Chr(10) + "Просьба сообщить разработчикам программы." End Select err4563541: Response = DATA_ERRCONTINUE Exit Sub