Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обработчик ошибок / 24 сообщений из 24, страница 1 из 1
01.06.2004, 16:36:42
    #32543166
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Есть у меня обработчик ошибок.
Глобальный.
А он может как нибудь узнать, в какой строке каког модуля произошла наша ошибка?
(мечтательно)Я бы лог завел, все ошибки, которые у клиентов случаются,знал бы.
Единственный вариант , который мне попался требовал тотальной ручной нумерации всех строк. Спасибо, я лучше как-нибудь без лога.
Кстати, не подскажете, куда в XP делась надстройка про связанные таблицы? Удобно было в 97
...
Рейтинг: 0 / 0
01.06.2004, 18:25:03
    #32543448
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
...
Рейтинг: 0 / 0
01.06.2004, 18:37:09
    #32543477
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Ты нашел наверное оператор Erl (так он помойму называется) -
то единственный вариант. В помощь, есть в сети AddIn, которые сами автоматом пробегают по всему твоему коду и нумируют строки, так что проблем, кроме не очень удобного вида, нет. Помойму даже на русьимпорте валялся файл.
...
Рейтинг: 0 / 0
01.06.2004, 18:57:23
    #32543527
Обработчик ошибок
Function Erl() As Long
Компонент VBA.Information

штой-то он скрытный в 97
...
Рейтинг: 0 / 0
02.06.2004, 07:22:07
    #32543835
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Спасибо
...
Рейтинг: 0 / 0
02.06.2004, 07:37:12
    #32543846
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
А имя модуля? Или строки тотально нумеровать в проекте 8-| ?
Тот случай, когда система защиты от сбоев выведет из строя систему:-)
...
Рейтинг: 0 / 0
02.06.2004, 09:41:44
    #32543983
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Приведите пож. код, где можно увидеть результат работы функции Erl

Я пробовал в процедуре генерить ошибку, но Erl всегда возвращает 0
...
Рейтинг: 0 / 0
02.06.2004, 10:03:53
    #32544037
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Function f1()
Dim i1 as integer
On error goto lblError
10 i1=1/0
Exit Function
lblError:
Debug.Print erl()
End Function
...
Рейтинг: 0 / 0
02.06.2004, 10:15:09
    #32544069
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Public Sub aaa()
  Dim i As Long
  Dim k As Long
  
  On Error GoTo Er_
  
 1 :  i =  0 
 2 :  k =  4 
     i = k / i
 3 :  k = i +  1 
  
Ex_:
  Exit Sub
  
Er_:
  MsgBox "Ошибка в строке - " & Erl
  Resume Ex_
End Sub

После запуска увидим - Ошибка в строке - 2
Потому что Erl возвращает РАНЕЕ нумерованную строку (представь себе что Erl работает ка счетчик, прошел код нумерованную строку - приобрел значение номера строки, случись ошибка - вернет тот номер, что последним в нем установился). Чтобы всегда получать реальный номер строки, необходимо нумеровать ВСЕ строки, иначе получаешь варианты. В данном примере получаем под цифрой 2 может скрываться ошибка в двух строчках:
2: k = 4
i = k / i
...
Рейтинг: 0 / 0
02.06.2004, 11:18:31
    #32544301
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Проще не нумеровать строки, а передавать содержательную информацию в протокол ошибок и если выводиться сообщение пользователю, то можно перехватывать выполнение по Ctrl+Break и по resume next переходить на строку следующую за ошибочной и делать все что хочешь: смотреть значения переменных, исправлять косметически код, возвращать выполнение на оператор, где произошла ошибка, чтобы заново его выполнить. Ведь все это нужно для программиста во время эффективно отладке. А пользователь только видит сообщение об ошибке

Err.Description
Продолжать?
(Да\Нет)

и нажимает Да-продолжать дальше, Нет-перейти в конец процедуры.

У меня везде, где возможно

Private/Public Sub/function NAME1 (...)
Dim ...
On error goto Er
....

Ex: ....
Exit sub/function
Er: IF (Handler(Err.Number, Err.Description,"NAME1(" & .... & ")") Then
Resume Next
Else
Resume Ex
End if
End sub/function


в отдельном модуле
Public function Handler(EN as long, ED as string, Wh as string) as boolean
Dim Ans as integer
Dim Rst as DAO.Recordset ' -- можно и ADODB
on error resume next
Set Rst = currentdb.openrecordset("History",,dbAppendOnly) '-- для DAO
' Rst.open "History",CurrentProject.Connection '-- для ADODB
Rst.addnew
Rst!ErrNumb = EN
Rst!ErrDesc = ED
Rst!Wheres = Wh
Rst!Whens = now()
Rst!Who = curruser()
'-- ваша функция возвращает имя текущего пользователя
Rst.update
Set Rst = nothing
Handler = (Msgbox(Err.Number & ", " & Err.Description & vbcrlf _
& "Продолжать?", vbYesNo) = vbYes)
End function
...
Рейтинг: 0 / 0
02.06.2004, 12:23:33
    #32544475
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
спасибо, а без нумерации строк никак?
...
Рейтинг: 0 / 0
02.06.2004, 18:30:31
    #32545386
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Вот я как раз и предлагаю без нумерации.

Пользователь если видит ошибку - жмет Да (Продолжать)
некоторые ошибки ему можно даже не выводить, а автоматом писать в лог и направлять Resume Next или Resume Ex.

В логе все будет. Можно проверить у себя и перехватить Ctrl+Break'ом или когда появиться у пользователя трудно находимая ошибка, то попросить его ничего не нажимать и позвать Вас. И Вы у него по Ctrl+Break (если есть у него права на просмотр кода) посмотрите, что в переменных.

А номер строки ничего особенного не даст! Кроме статистики
...
Рейтинг: 0 / 0
02.06.2004, 20:07:24
    #32545503
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
>позвать Вас
>номер строки ничего особенного не даст
>смайлик

Уважаемый neal. Я не придумал, как цензурно Вам ответить. Вы порете какую-то дикую чушь. Вы понятия не имеете о вопросе, который пытаетесь обсуждать.
Вот.

Пользователь, изучающий значения переменных. Нет, ЛП прав. Даешь раздел "Юмор" на сайте.
...
Рейтинг: 0 / 0
02.06.2004, 21:09:14
    #32545528
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
ПРОЩЕ не нумеровать строки, а сформировать содержательную информацию, те написать для КАЖДОЙ строки индивидуальный обработчик.
Что касается моего визита к клиенту для анализа ашипки:-)
Новоуренгойский будет ждать особенно долго:-)
...
Рейтинг: 0 / 0
02.06.2004, 21:22:41
    #32545537
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
2 Shark

Вот и у меня таже проблема, клиенты удалённые, а ошибки нет, нет да проскакивают. Думал может возможно как-то определять строку, на которой вывалилась прога, но видимо нет.
Лог веду, но он может дать только инфу о том, какая процедура вылетела.
По поводу "написать для КАЖДОЙ строки индивидуальный обработчик." немного не понял, это что - ирония? Как можно для кажой строки написать обработчик? Или такое встречается?
...
Рейтинг: 0 / 0
02.06.2004, 21:55:10
    #32545551
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
>Ирония
Конечно.
Я позицию neal сформулировал, сгоряча кавычки забыл
...
Рейтинг: 0 / 0
02.06.2004, 23:03:42
    #32545587
Exquisite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
ИМХО, neal прав на все 100%. Лично я бы подписался практически под каждым его словом...
Shark, Вы просто не совсем верно поняли одну из фраз, на которую отреагировали следующим образом: "Пользователь, изучающий значения переменных." По-видимому, имелось в виду, что именно программер придет и будет смотреть переменные. При удаленном сопровождении этот вариант, конечно, не рассматривается.

Теперь непосредственно по сабжу. На самом деле мне, как и любому другому программисту, в большинстве случаев (хотя, конечно бывают и исключения) достаточно иметь информацию о процедуре и значениях входных параметров, при которых произошла ошибка. Имея эту информацию я могу воссоздать у себя подобную ситуацию и увидеть своими глазками строку, в которой произошла ошибка.
А что дает номер строки, если мы не знаем входных параметров процедуры? Да ничего! Ну произошла такая-то ошибка в такой-то строке. Ну и что? Какая здесь полезная информация?
Да, конечно, при варианте, когда в момент ошибки необходимо запоминать входные или какие-либо "сопричастные" параметры появляется много дополнительной работы "ручками", когда в обработчике необходимо указать, что вот такие-то параметры надо записать в лог-файл, но несомненная выгода в этом есть.

Вот кусок из лог-файла ошибок:

____27.03.04 (21:13:50)______CodeDeveloper: IvanScar______
Error : #10001 + vbObjectError (-2147211503) (Нарушена логическая целостность системных данных)
Error Source:
Help Source: KUBGridHelp.hlp (Context: 10)
Error Code : KscKUBGrid.SysFixGridSettingData (C:\Системные Решения\Mdb\KUBGridLib.mdb)
Parametrs : 0; 127;
Machine/User: Unknown/Unknown (Informed about error: True)

Из этого сообщения я могу узнать:
- когда и в какое время произошла ошибка;
- кто писал данный участок кода;
- какая ошибка (ее код и описание) и где (модуль, функция, файл) произошли;
- какие параметры были на входе процедуры (первый равен нулю, второй - 127);
- на какой машине и во время работы какого пользователя произошла ошибка и был ли этот самый пользователь проинформирован о возникновении исключения.

Имея все эти данные на руках, я во-первых, могу передать данное сообщение об ошибке тому кодеру, который ваял этот участок кода.
Во-вторых, я могу воссоздать ситуацию и пройти в пошаговом режиме по проблемной процедуре (или просто проанализировать код).
В-третьих, я получаю инфу о машине и пользователе, которые сами по себе могут быть "проблемными", и о том, были ли напуганы юзеры.
Ну т.е., строку с инструкцией, в которой произошла ошибка, вокруг чего здесь ломают копья, мне не нужна! Я сам ее найду, если буду иметь на руках входные и может быть какие-либо другие параметры...
...
Рейтинг: 0 / 0
03.06.2004, 15:17:13
    #32546878
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
2Shark
ПРОЩЕ не нумеровать строки, а сформировать содержательную информацию, те написать для КАЖДОЙ строки индивидуальный обработчик.
Что касается моего визита к клиенту для анализа ашипки:-)

Чего кипятишься - разберись сначала.
Специально выделяю красным - там ты формируешь строку со значениями входных параметров или важных локальных переменных, по которым ты и сможешь понять из-за чего ошибка произошла и где. (Например, значение переменной цикла скажет на какой итерации произошла ошибка, а не только номер строки как у тебя.)

Private/Public Sub/function NAME1 (...)
Dim ...
On error goto Er
....

Ex: ....
Exit sub/function
Er: IF (Handler(Err.Number, Err.Description,"NAME1(" & .... & ")") Then
Resume Next
Else
Resume Ex
End if
End sub/function


в отдельном модуле
Public function Handler(EN as long, ED as string, Wh as string) as boolean
Dim Ans as integer
Dim Rst as DAO.Recordset ' -- можно и ADODB
on error resume next
Set Rst = currentdb.openrecordset("History",,dbAppendOnly) '-- для DAO
' Rst.open "History",CurrentProject.Connection '-- для ADODB
Rst.addnew
Rst!ErrNumb = EN
Rst!ErrDesc = ED
Rst!Wheres = Wh
Rst!Whens = now()
Rst!Who = curruser()
'-- ваша функция возвращает имя текущего пользователя
Rst.update
Set Rst = nothing
Handler = (Msgbox(Err.Number & ", " & Err.Description & vbcrlf _
& "Продолжать?", vbYesNo) = vbYes)
End function

И потом если клиент удаленный - то чем подробнее строка Wh, тем легче потом воссоздать у себя на тестовой версии эту ситуацию.


2 Shark
Будешь выражаться нецензурно - никто помогать тебе не будет!
...
Рейтинг: 0 / 0
04.06.2004, 21:01:56
    #32549339
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
2 Exquisite
2 neal

Это конечно всё хорошо.
В проблемных местах всё так и делается, НО
есть программа (обычный mdb, файл-сервер), есть удалённые клиенты, которые работают со своими данными, есть бизнес логика, причём одна функция делает в транзакции много всяких вещей.
Оттестировал у себя программу. Всё работает на ура. Передаю клиенту – один из умников научился вести прямую запись в таблицы, в результате твои бизнес правила не работают, программа вылетает в совершенно неожиданных местах (причём ты не знаешь, на какой конкретно строке в цепочке транзакций она вылетает). Данные (для того, что бы ты у себя потестировал) тебе конечно же никто не даст, а скажут, что твоя программа глючит и тому подобное.
Так что в некоторых случаях полезно знать номер строки, на которой споткнулась программа.

Ещё один реальный случай: у клиента стоит оригинальный WinXP и OfficceXP, я у себя делаю на локализованной версии. При отправке очередного обновления (фактически файла БД) я делаю полный импорт всех объектов в новый mdb файл.
Совсем недавно у клиента прога начала ругаться в совершенно непроблемном месте.
Путём часового разговора по аське, с помощью брикпоинтов удалось найти причину. Но на это у меня ушёл 1 час.
...
Рейтинг: 0 / 0
04.06.2004, 23:32:54
    #32549397
Exquisite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
AlTis, конечно, случаи бывают разные и каждый волен (если это, конечно, не командная работа) выбирать одно или сразу несколько решений поставленной задачи. На этом, вобщем-то, можно было бы и закончить :) НО...

Но лично я (и это всего лишь мое мнение, мой стиль программирования, который я, конечно, никому не навязываю) в особенно ответственных местах, например в коде, реализующем бизнес-логику, ни за что не доверюсь некому мифическому номеру строки. Все исключительно на "генерации ошибок". Т.е. сложная, "много-ходовая" бизнес-транзакция разбивается на отдельные "проводки", каждая из которых реализована в своей функции, которая, в свою очередь, умеет справляться с возникающими ошибками или абсолютно информативно (что, где, по какой возможной причине) сообщать о возникшей ошибке как мне (через лог-файл), так и вызвавшему ("старшему" в иерархии транзакции) коду, который со временем (после каждой неожиданной ошибки обычно ведь вносятся изменения в программу, способные эту ошибку правильно обработать) становится довольно "интеллектуальным" и кое-что в бизнес-данных способен либо поправить самостоятельно, либо в диалоге с пользователем.
Кроеме того, абсолютное большинство ошибок, о которых мне сообщает приложение "придуманы" мной, а не MS! Т.е. ошибки типа "Деление на ноль" или "Тайп мисматч" практически никогда не попадают в лог-файл ошибок, ибо вместо них обработчики ошибок загоняют некую более полезную информацию в контексте выполняемой задачи. Например, в моем предыдущем посте сообщение об ошибке выглядит как "Нарушена логическая целостность системных данных", хотя, на самом деле, произошла (или даже НЕ произошла, а просто была логически "вычеслена") некая другая ошибка, и вот на основе данной ошибки мой "интеллектуальный" код запускает отдельную процедуру, которая "шерстит" эти самые "системные данные", пытаясь их исправить - либо исправляет некорректные данные значениями по умолчанию, либо спрашивает у юзера, либо лезет в архив. Положиться в данном случае на номер строки я не могу, ибо... хм... зыбко как-то...

Еще раз замечу, что в принципе, все это дело вкуса...

Единственное, что могу настоятельно посоветовать тем, кто формирует свой стиль обработки ошибок: Все функции и процедуры, каким-либо боком связанные с обработкой неожиданных ошибок (некий диалог с пользователем, запись в лог, "аварийно-интеллектуальный" код и т.п.) выносите в отдельный модуль, к которому обращайтесь (к его переменным или функциям) только в случае возникновения ошибки.
...
Рейтинг: 0 / 0
05.06.2004, 07:45:25
    #32549454
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
> Я неблагодарный
SergeySV мне очень хорошо ответил. Я его поблагодарил.
Но Вы ответили в стиле "А нафиг тебе это ваще?" Я и отреагировал соответственно. МНЕ НАДО.

>На самом деле мне, как и любому другому программисту, в большинстве случаев (хотя, конечно бывают и исключения) достаточно иметь информацию о процедуре и значениях входных параметров, при которых произошла ошибка.

Для этого придется при ошибке записать в лог снимок БД:-) В большинстве случаев, как раз, ошибка не воспроизведется (но бывают и исключения)

>только номер строки как у тебя
У меня где- то написано, что я пишу только номер строки?

>случаи бывают разные и каждый волен
Это правда. Например случай Неал, когда из проекта(если его можно так назвать) даже не выброшены исходники, и предполагается, что автора можно позвать, и для этого даже специальная кнопка в обработчике ошибок. Мне кажется, что для этого "другого" случая ваще не надо никаких обработчиков, тк стандартный эксесный+прибегающий автор дают лучшую функциональность. Впрочем, заканчиваю пилить опилки:-)
...
Рейтинг: 0 / 0
06.06.2004, 13:40:03
    #32549895
Exquisite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Shark> Но Вы ответили в стиле "А нафиг тебе это ваще?" Я и отреагировал соответственно. МНЕ НАДО.
МНЕ НАДО? Хм... А как же на счет вот этого:
gorobets dima: Короче есть вариант когда нужно сгруппировать все 3 таблицы.
Shark: Заведи одну табличку и не парься.
Человеку тоже было надо!*

Shark> Для этого придется при ошибке записать в лог снимок БД:-) В большинстве случаев, как раз, ошибка не воспроизведется (но бывают и исключения)
Возможно, у Вас всё именно так и происходит - все ошибки которые возникают, основаны на содержимом БД. Я не хочу озвучивать свои выводы о получаемых в результате проектах, а просто приведу статистику из своей практики. Львиная часть времени и "кода" лично у меня и моих знакомых программистов уходит на интерфейс и различные "сервисы". В большинстве своем этим самым "интерфейсам" и "сервисам" абсолютно безразлично, какие данные отображать. Ну а к "движкам данных" вообще подход особый.**

Shark> У меня где-то написано, что я пишу только номер строки?
Перечитывать не буду, ибо здесь не форум лингвистов или писателей-литераторов. Т.е. я "читаю" мысли, а не слова. И если слов таких небыло, то конечно извиняюсь, был не прав.

Shark> Это правда. Например случай Неал, когда из проекта (если его можно так назвать) даже не выброшены исходники , и предполагается, что автора можно позвать, и для этого даже специальная кнопка в обработчике ошибок.
Ндаааааа... AlTis, который вообще напару с клиентом по аське искал ошибку методом пошаговой отладки вообще полный .... хм... ??? Да? А ведь он в данном топике Ваш союзник, вроде как :) Круто вы даже со своими сторонниками обходитесь...***


Shark> Мне кажется, что для этого "другого" случая ваще не надо никаких обработчиков, тк стандартный эксесный+прибегающий автор дают лучшую функциональность.
Браво! БРА-ВО!!! //Никаких комментариев...****

Shark> Впрочем, заканчиваю пилить опилки:-)
100% за! :) //отвалился с темы...

--------------------
Примечания:
* - возможно развитие темы до 20 строк текста.
** - по поводу "движка данных" уже была представлена информация, при этом возможно практически безграничное развитие темы с приведением мнения супер-авторитетных спецов (путем цитирования их книг, статей и других трудов);
*** - непредоставление исходников удаленному клиенту (в случаях с некоробочными продуктами) вообще отдельная тема, которую, боюсь, обсуждать бессмыслено по ряду причин.
**** - просто никаких комментариев, ибо если этого не понятно вот просто так без объяснений, то объяснить будет невозможно...
...
Рейтинг: 0 / 0
25.10.2004, 15:52:57
    #32753155
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Мне нужно что-то похожее на обсуждаемый в теме регистратор, но для отлавливания СИСТЕМНЫХ ошибок (т.е. ошибок вида: "программа выполнила недопустимую ошибку и будет закрыта").


А именно:
Есть программа, периодически завершающаяся у пользователей (но далеко не всегда) именно таким сообщением. (Проблема обостряется в отчетные периоды - т.е. периоды массовой работы с несколькими специфическими формами). Надо выловить момент (строку кода, или сопутствующие состояние объектов/данных), вызывающий этот нефиксируемый трабл.

Пока просто написал через каждую строчку подозрительной процедуры (точнее - одной из) вызов некой спецпроцедуры, делающей запись в табличку с данными информативной строки (по завершении "логируемой" (исследуемой на вшивость) процедуры все внесенные ею изменения либо удаляются - "рабочий режим" лога - чтобы не раздувался (итого, остаются только те записи, для которых "конец процедуры не наступил из-за выгрузки приложения или просто необработанной ошибки (правда этих быть не должно)), либо меняют флаг завершения - "режим жесткой отладки" (слежу глазом за тем, как все проходит в "штатном" режиме" (порядок следования записей логов нескольких вызывающих друг друга, в т.ч. неявно, процедур) + если надо анализировать и возможность влияния деятельности других юзеров - чтобы их "штатно завершившиеся процедуры" не вытирали свой "одновременный" лог).

Что удивительно - обнаружил, что "вылет" чаще всего происходит на вызове "стандартной" ф-ии IsLosded() (Правда из очень древней реализации). Но, думается, в самой форме, которая ИзЛоадед, может (перед падением) висеть несохраненная запись, которая, в свою очередь, может (при попытке потрогать форму) вызывать обработчик BeforeUpdate формы, (а там еще много чего понакручено-понаворочено - вплоть до проверки прав на изменение данных (от времени), выдачи боксов и т.п. Мои пляски с бубнами - вроде явного объявления типов, в т.ч. возвращаемых функций, правки обработчиков ошибок (не мною все писано) и т.п. ощутимого результата не приносят.) Вот и думай - то ли вписывать строки - "регистрилку лога" по всей мыслимой цепочке (т.е. практически после каждого оператора, к тому же меняя в них строки с инфой), то ли искать другой способ "получения знаний".



Кто что-то мыслил/делал по проблеме - просьба поделится идеями/наработками.
Межмордие - Аксесс 97. mde. Данные - .mdb формата Access 2.0.
...
Рейтинг: 0 / 0
14.01.2005, 15:10:46
    #32865318
RuslanLisovenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок
Что-тот я только прочел спор............

окончательный вариант все же какой?

есть ли пути глобального перехвата события ошибок на уровне приложения Access без трассировки всего кода на msgbox err.description?

Проставить то все можно разве по Access.errors.count нельзя определить err.description в крнце после выхода из приложения...........вот по поводу строчек кода.................

http://]http://www.sql.ru/forum/actualthread.aspx?tid=151530
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обработчик ошибок / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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