«Компонент ActiveX не может создать объект» в приложении Access 2000 VBA - PullRequest
1 голос
/ 28 апреля 2011

У меня есть приложение VBA, которое выдает исключение «компонент ActiveX не может создать объект» при попытке запуска.

enter image description here

Точка останова устанавливается на строке, которая выдает исключение:

enter image description here

Я предполагаю, что это как-то связано с Me.Recordset (Me - форма доступа). Набор записей, вероятно, связан с библиотекой Microsoft DAO, на которую есть ссылки. Вот текущие ссылки:

enter image description here

Приложение работает на компьютере с Windows 98, и Access .mdb предположительно работал нормально раньше (никто не помнит, на каком другом компьютере он изначально находился, или его конфигурацию. Сама форма просто прокручивает записи данных (что работает хорошо), но при запуске вышеупомянутой подпрограммы Calc_Confidence_Level () она выдает ошибку в наборе записей, которая, как я думал, будет той же, что и при прокрутке.

Кто-нибудь знает, что здесь происходит не так? Даже толчок в правильном прямом направлении, чтобы иметь возможность отладить это лучше, было бы здорово, так как я не очень часто работаю с VBA / Access.

Спасибо!


Обновление 1

Я посмотрел в "C: \ Program Files \ Common Files \ microsoft shared \ DAO \" и вообще не вижу .dll, только файл .tlb. Там должен быть .dll там, верно?

enter image description here

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Вы должны уточнить, если (1) у вас есть активный набор записей в вашей форме, и затем (2), если ваш набор записей является ADODB или DAO.Обычно, когда форма открывается стандартным способом (со свойством recordsource, ссылающимся на локальную \ связанную таблицу или представление), набор записей имеет тип DAO.В этих условиях вам нужна библиотека DAO.Если для формы отсутствует свойство «источник записей», то нет набора записей или его необходимо установить «на лету», например, в событии «при открытии».Затем вы должны проверить, какой набор записей объявлен в процедуре.('findfirst' - это метод DAO, который не может быть использован с наборами записей ADODB)

Другая вещь может заключаться в том, чтобы убедиться, что форма не повреждена: откройте новую \ пустую базу данных, импортируйте все объекты из вашего активногобазы данных и протестируйте ее.

0 голосов
/ 28 апреля 2011

Вам необходимо обратиться к «Библиотеке объектов Microsoft DAO xx».У вас есть только библиотека совместимости DAO.

...