Странная ...обнаружена ошибка. Приложение будет закрыто ModName: msjetoledb40.dll - VB

Узнай цену своей работы

Формулировка задачи:

Ну т.е. постараюсь описать суть.
1. Под конец события Form_Load (т.е. когда все типа готово уже к работе) запускается таймер:
Все готово к работе означает, что ADODB.Connection подключено к БД, все Listview загружены данными из таблиц этой БД, все интерфейсы пользователя облагорожены тематически и т.п., все сабклассинги инициализированы и т.п.

2. Смысл таймера(Interval=1000): сделать несколько "умных" запросов к БД и на основании этого обновить отдельные строчки в ListView.

3. Ошибка возникает после выполнения следующего кода но только если вызвать контекстное меню "очень быстро после запуска формы" по ощущениям: если вызвать контекстное меню до первого срабатывания таймера то ошибка будет в момент его срабатывания.
Смысл кода в следущем (кажется):
если HTest выдаст ошибку, значит мы находимся не на строчке ListView и выходим.
если мы находимся на строчке, то запускается ф-ция ConfigureMenu, кот. в завис. от содержания выделенной строчки делает отдельные пункты меню(а также сопряженного Toolbar и т.п.) enable/disable
если кнопка мыши правая, то контекстное меню сразу после выводится на экран в месте щелчка.
Смысл в чем: если этот код (правая кнопка мыши и на строчке Listview) выполнить до первого срабатывания Timer, то ReadApplyChanges_BD вышибет программу:

...обнаружена ошибка. Приложение будет закрыто ModName: msjetoledb40.dll


Почему так думаю...
msjet яно намекает на общение с БД, а с БД после загрузки больше ничего не работает.
Если увеличить время таймера до 2сек, то ошибка не наблюдается
Если убрать ConfigureMenu из ListView1_MouseUp, то ошибка не наблюдается
Умный человек подскажет: надо добавить ключик /verbose.
Нет проблем, добавил:
Дык вот...этих 2-х строчек "дебага" достаточно для того чтоб ошибка более не наблюдалась...
Я встречался с такими ситуациями, когда внесение миллисекундной задержки посредством включения дебага полностью устраняет проблему ради обнаружения которой этот дебаг включался.

Че вообще делать в таком случае?

Для устранения ну скажем наверно могу запустить таймер c нек. "отсрочкой". Надо ли пытаться понять? Или надо обойти, "как получится" и забыть?
Ошибка возникает как в VB-среде, так и в случае exe. Прога достаточно навернута, но с БД ранее не работала...можно конечно попытаться набросать тестовый проект, но не уверен что сумею "высечь искру".

Решение задачи: «Странная ...обнаружена ошибка. Приложение будет закрыто ModName: msjetoledb40.dll»

textual
Листинг программы
<font color="blue">Public</font> my_JRO 'т.е. <font color="blue">as</font> просто <font color="blue">object</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы