Как отладить скомпилированную базу данных доступа (accde) - PullRequest
0 голосов
/ 16 марта 2020

У меня есть интерфейс доступа, который подключается к SQL Серверным таблицам и работает нормально. Однако, когда я компилирую его в файл accde, при закрытии БД появляются различные ошибки. Кажется, ошибки указывают на то, что программа все еще ищет таблицу или значение глобальной переменной. В событии Form_Close () скрытой формы есть подпрограмма, которая удаляет все ссылки на серверную часть SQL. Итак, как я могу отладить уже скомпилированную базу данных доступа? Почему скомпилированная БД ведет себя иначе, чем некомпилированная (accdb) версия?

Ответы [ 3 ]

0 голосов
/ 18 марта 2020

Вы говорите об одном и том же компьютере или другом компьютере?

Скомпилированный accDE ОЧЕНЬ чувствителен к выполнению на другом компьютере (даже в одной и той же версии). Причина этого заключается в том, что скомпилированный accDE берет вашу текущую версию для офиса. С точки зрения глобальных переменных и обработки ошибок? AccDE - лучший выбор, поскольку необработанные ошибки не сбрасывают локальные или даже глобальные переменные. По сути, accDE работает как неостановимый грузовой поезд.

Если ваш accDB (не скомпилированный) работает и нормально работает на вашем компьютере, то я НИКОГДА не видел случая, когда accDE не работает, а на самом деле работает лучше и ведет себя гораздо более ro-bust.

Итак, нет, вы не можете отлаживать accDE, но вы можете включить accDB на ЭТОМ ЖЕ компьютере.

Если вы запускаете accDE на другом компьютере, то вы пропустили Огромный, огромный и СПЕКТУАЛЬНЫЙ бит информации в вашем посте.

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

Проблема патча версии офиса / доступа ОЧЕНЬ существенна Вот. Причина, конечно, в том, что если вы развернете accDB, он будет часто работать, потому что access может (и делает) обнаруживать, что текущая версия Access (даже SP / patch / update) отличается, тогда он может перекомпилировать код на лету (потому что у accDB есть исходный код). AccDE не делает, и поэтому не может перекомпилировать. Тем не менее, я все еще СИЛЬНО предлагаю вам развернуть accDE и решить проблему уровня SP / patch, так как accDE намного надежнее в своих операциях по сравнению с не скомпилированными accDB.

Я был бы довольно ошеломлен, если вы испытывают эту проблему на том же компьютере, на котором работает accDB, и этот компьютер затем используется для создания accDE. Если это фактический случай, то я бы создал новый пустой accDB и импортировал все из старой accDB, а затем убедился, что он может скомпилировать код (из IDE debug-> compile). Если приложение компилируется, то создайте accDE, и оно должно работать нормально. Так что, если это та же машина, то ваш accDB поврежден или поврежден. Как я уже говорил, создайте новый, импортируйте все из старого и создайте свой accDE из этого. Это будет работать, и я никогда не видел случая, когда accDB работает, и accDE не работает (на той же машине).

0 голосов
/ 19 марта 2020

Первое, что нужно сделать, это декомпилировать ваше приложение ... просто декомпилировать Google Ms Access. Когда вы выполняете декомпиляцию и пытаетесь скомпилировать, почти наверняка вы найдете некоторые «забытые» ошибки.
2nd , если 1st не удается , пришло время внедрить надежную систему ведения журнала ... на основе текстового файла запись, чтобы избежать зависимостей, просто работайте на низком уровне: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/freefile-function.
Если по-прежнему не удается отправить сообщение с дополнительной информацией.

0 голосов
/ 18 марта 2020

Вам нужно перехватывать ошибки, используя On error goto LabelName или, если вас не волнуют ошибки, вы должны использовать On error resume next поверх вашего кода. Вам все равно следует опубликовать свой код, чтобы получить более точную помощь.

...