У меня есть книга макросов Excel (бинарное расширение), в которой внезапно возникли 2 проблемы (иногда она работает нормально).
Проблема №1. Иногда возникает ошибка в строке 5. Похоже, соединение не открывается. Получаем ошибку: Microsoft][ODBC Microsoft Access Driver]Общая ошибка Невозможно открыть раздел реестра Временный (изменчивый) Ace DSN для процесса 0x7f8 Thread 0x1174 DBC
Проблема №2. Иногда возникает ошибка в строке 7. Похоже, что SQL не может быть запущен. Это указывает на то, что вкладка «Рабочий лист» не может быть найдена, хотя она существует. Обратите внимание, что для этой ошибки у нас нет проблем со строкой 5 (открытое соединение). Отображается следующая ошибка: [Microsoft] [Драйвер ODBC Excel] Ядру базы данных Microsoft Jet не удалось найти объект «Имя рабочего листа». Убедитесь, что объект существует... Для проблемы № 2, как только мы закроем диалоговое окно с ошибкой, МАКРОС УДАЛЯЕТСЯ !!!
Примечания
Модуль кода не менялся годами. Несколько дней мы не получаем никаких ошибок/проблем.
Эта проблема возникает для нескольких книг Excel, запущенных несколькими людьми, которые запускают разные блоки кода VBA. Однако 1 из блоков кода одинаков во всех этих макросах, что является фрагментом кода выше.
Исходные данные не менялись годами ни по формату, ни по объему.
Все эти книги находятся на сетевом сервере.
Мы используем драйвер Windows7/Excel 2010/ODBC Excel (xls xlsx xlsm xlsb) 14.00.7180.5000
Фрагмент кода
1-Set adoConn = Nothing
2-Set adoRS = Nothing
3-Application.EnableCancelKey = xldisabled
4-strConn = "Driver={Microsoft Excel Driver (*.xls,*.xlsx,*.xlsm,*.xlsb)};DriverId=1046;Dbq=" & strFileName & ";IMEX=1;"
5-Set adoConn = New ADODB.Connection: adoConn.Open strConn
6-Application.EnableCancelKey = xlInterrupt
7-Set adoRS = New ADODB.Recordset:adoRS.Open Source:=strSQL,ActiveConnection:=adoConn