Не удается создать activex объект проверьте правильность установки компонент oracle client
Он определенно установлен и существует в разделе "Программы и функции". У кого-нибудь есть список вещей, которые я могу проверить, чтобы выяснить, что происходит?
теперь я попытался зарегистрировать DLL с помощью regsvr32.exe /i bob.dll as предложили, но я получаю эту ошибку:
Модуль "Боб.dll " был загружен, но точка входа DllRegisterServer была не найдено.
убедитесь, что "Боб.dll " является допустимым DLL или OCX-файлом, а затем повторите попытку.
Я должен отметить, что это 32-разрядное приложение на 64-разрядной машине на этот момент. Он также отлично работает на моей машине, которая является Windows XP 32-бит.
оказывается, чтобы это приложение работало под VBScript, мне пришлось сделать две вещи.
- Выполнить RegAsm.exe для регистрации DLL.
- запустите C:\Windows\SysWOW64\cscript - . exe для запуска моего VBScript.
Спасибо за вашу помощь.
и если они не работают, проверьте другие ответы здесь о включении 32-разрядных приложений.
также стоит проверить, что у вас есть "включить 32-разрядные приложения", установленное в True в расширенных настройках DefaultAppPool в IIS.
приложение пытается создать COM-объект, и даже если эта COM DLL существует, это может зависеть от другой DLL, которая не установлена. Вы можете использовать DependencyWalker чтобы узнать, так ли это.
Я знаю, это старый вопрос и уже есть ответ помечен как правильный, но это не помогло мне.
для любых бедных душ, идущих этим путем в будущем, проверьте настройки браузера -
для меня, используя IE, исправление должно было войти в инструменты / Свойства обозревателя, вкладку безопасности, для соответствующей зоны "пользовательский уровень" и проверить настройки ActiveX. Параметр "использование элементов ActiveX, не помеченных как безопасные для использования", чтобы "включить" исправлена эта проблема для меня
также при регистрации компонента убедитесь, что вы используете 32-разрядную версию regsvr32.исполняемый. Если вы просто запустите regsvr32.exe в повышенном приглашении по умолчанию будет принимать стандартную 64-разрядную версию (которая, как ни странно, находится в C:\Windows\System32)
версия я считаю, что вам нужно, находится в C:\Windows\SysWow64\regsvr32.exe
например, для этого кода:
Если это 32-битный COM / Active X, Используйте 32-битную версию cscript.exe / wscript.exe, расположенный в папке\C:\Windows\SysWOW64
Я также встречаю ту же ошибку в vbscript.
устранение:
Откройте командную строку, запустите:
У меня была такая же проблема в программе VB6, которую я пишу, где форма использует объект ScriptControl для запуска vbscripts, выбранных пользователем.
Он работал нормально, пока на днях, когда он внезапно начал отображать "ошибка выполнения 429", когда VBScript попытался создать сценарий.Filesystemobject, с.
после того, как сошел с ума в течение целого дня, пробуя все предлагаемые здесь решения, я начал подозревать, что проблема была в моем приложении.
к счастью, У меня была резервная версия этой формы: я сравнил их коды и обнаружил, что непреднамеренно установил свойство UseSafeSubset моего объекта ScriptControl в True.
Это была единственная разница в форме, и после восстановления резервной копии, он работал как шарм.
надеюсь, это может быть полезно кому-то. Вверх с VB6! :-)
У меня была такая же проблема с Excel, я пытался использовать 32 COM DLL с версией Excel 64 бит, и я получил эту ошибку. Я перестраиваю com dll до 64-битной версии, и ошибка исчезает. Поэтому убедитесь, что ваша com dll имеет ту же архитектуру (x86 vs x64), что и ваше приложение.
У меня тоже эта проблема. Я пытался запустить старую 32-битную dll в 64-битной системе. Я заставил его работать, скопировав .dll для C:\Windows\SysWoW64\ каталог и запуск этого:
Компонент ActiveX не может создать объект
Решение
Причина 3. Существует ссылка на базу данных утилиты, которая не является допустимой
С выпуском Microsoft Access 2000 ссылка на Utility не требуется. Если вы преобразовали базу данных из предыдущей версии, в списке ссылок по-прежнему может появиться ссылка на Utility. Ото всех ссылок на utility или Utility.mda. Для этого выполните следующие действия:
Причина 4. У вас нет необходимых разрешений для необходимых библиотек
Все пользователи Microsoft Access должны иметь разрешения на Windows системных папок.
Убедитесь, что у пользователей есть разрешения на чтение для всех файлов в следующих папках.
Если вы не можете предоставить разрешения на чтение, вы можете использовать такую утилиту, как Process Monitor, чтобы определить, какие файлы или файлы пользователи не имеют необходимых разрешений для использования. Чтобы получить монитор процесса, посетите следующий веб-сайт Sysinternals: Sysinternals.
Причина
Такое поведение может произойти, если любое из следующих условий является верным:
- Объекты доступа к данным (DAO) не регистрируются должным образом.
- Отсутствуют одна или несколько ссылок.
- Существует ссылка на базу данных утилиты, которая не является допустимой.
- У вас нет необходимых разрешений для необходимых библиотек.
- Существует поврежденный файл мастера.
Причина 5. Существует поврежденный файл мастера
Чтобы восстановить поврежденные файлы мастера, выполните следующие действия:
- Используйте Windows Explorer, чтобы найти следующие файлы мастера: Acwzmain.mde, Acwztool.mde и Acwzlib.mde.
- Измените расширение имени файла каждого файла на "старый". Например, измените Acwzmain.mde на Acwzmain.old.
- Ремонт Microsoft Access или Microsoft Office Professional, чтобы переустановить файлы мастера.
Проверка системы
Конфигурация системы также может являться причиной возникновения проблем при создании внепроцессных COM-серверов. Чтобы устранить неполадки в системе, в которой возникают ошибки, выполните перечисленные ниже действия.
Определите, возникает ли проблема с каким-либо сервером вне процесса. Если приложение использует определенный COM-сервер (например, Microsoft Word), проверьте другой сервер вне процесса, чтобы убедиться в том, что проблема не связана непосредственно с уровнем COM. Если на компьютере не удается создать внепроцессный COM-сервер, переустановите системные файлы OLE, как описано в разделе "Переустановка Microsoft Office" данной статьи, или переустановите операционную систему, чтобы устранить проблему.
Проверьте номера версий системных файлов OLE, которые управляют автоматизацией. Эти файлы обычно устанавливаются в наборе. Номера сборки этих файлов должны совпадать. Неправильно настроенная программа установки может ошибочно установить файлы по отдельности. В этом случае файлы не будут сочетаться. Чтобы избежать проблем при автоматизации, убедитесь, что номера сборки этих файлов совпадают.
Файлы автоматизации расположены в каталоге Windows\System32 или в каталоге Winnt\System32. Проверьте перечисленные ниже файлы.
моя компания имеет приложение VB6 с использованием Crystal Reports 7, которое клиент попросил установить на Windows 7 32 бит. В настоящее время он установлен на компьютерах Windows XP 32bit SP2 на клиенте. Подключение к БД осуществляется через ODBC к экземпляру SQL Server 2000 на другом сервере.
в Windows 7 установка работает нормально, однако при попытке открыть приложение выдается ошибка.
Я посмотрел на следующий:
Я заметил два элемента в базе знаний, которые относятся к этому
наконец, из-за сложностей мне не разрешено вносить изменения в код этого приложения. Даже если бы я был, я не программист VB6, просто парень, который получил ужасно проект поддержки! Если требуются изменения кода, мне придется исследовать использование WinXP режим.
обновление: я получаю ту же ошибку в режиме XP. Это Win XP с SP3 VM. Это работает на виртуальной машине Win XP SP2, есть ли потенциально что-то в SP3, что вызвало бы это? Или это просто факт, что это режим XP?
в msrdo20 файл.dll отсутствует в установке.
Я не уверен, почему это не так, но мое решение-разместить файл где-нибудь на машине и зарегистрировать его с помощью regsvr32 в командной строке, например:
в идеальном мире вы бы пакет с распространяемый пакет.
эта загрузка исправила мой VB6 EXE и доступ к 2016 (используя ACEDAO.DLL) Ошибка времени выполнения 429. Мне потребовалось 2 долгих дня, чтобы решить это, потому что есть так много причин 429.
цитата из ссылки: "Эта загрузка установит набор компонентов, которые могут быть использованы для облегчения передачи данных между системными файлами Microsoft Office 2010 и приложениями, не относящимися к Microsoft Office"
вы говорите, что он работает после установки VB6 IDE, поэтому проблема, вероятно, будет в том, что компоненты, которые вы пытаетесь использовать, зависят от установленной среды выполнения VB6.
среда выполнения VB6 по умолчанию не установлена в Windows.
установка IDE-один из способов получить среду выполнения. Для компьютеров, не являющихся разработчиками, вместо этого следует использовать" распространяемый " пакет установщика от Microsoft.
вот один установщик времени выполнения VB6 от Microsoft. Я не уверен, что это будет правильная версия для ваших компонентов:
Дополнительная информация
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Эта ошибка имеет следующие причины и способы решения:
Невозможно использовать библиотеки DLL, необходимые для этого объекта, так как ее либо не удается найти, либо она была найдена, но оказалась повреждена. Убедитесь, что все связанные библиотеки DLL доступны. Например, объект доступа к данным (DAO) требует поддержку DLL, которые отличаются в зависимости от платформы. Может потребоваться повторный запуск программы установки для подобного объекта, если именно это является причиной данной ошибки.
Объект доступен на компьютере, но это лицензированный объект автоматизациии нет возможности проверить доступность лицензии, необходимой для создания его экземпляра.
Если попытка создания экземпляра является результатом вызова CreateObject или GetObject, объект должен найти ключ. В этом случае он может выполнить поиск в реестре системы или поиск специального файла, который он создает при установке (например, с расширением .LIC). Если ключ не удается найти, экземпляр объекта не может быть создан.
Если конечный пользователь неправильно настроил приложение объекта, необратимо удалил нужный файл или изменил реестр системы, объекту не удастся найти свой ключ. Если ключ не удается найти, невозможно создать экземпляр объекта. В этом случае создание экземпляра может работать в системе разработчика, но не в системе пользователя. Пользователю может понадобиться переустановка лицензированного объекта.
Вы пытаетесь использовать функцию GetObject для получения ссылки на класс, созданный с помощью Visual Basic. GetObject не может использоваться для получения ссылки на класс, созданный с помощью Visual Basic.
Доступ к объекту явным образом был запрещен. Например, вы пытаетесь получить доступ к объекту данных, который используется в данный момент и заблокирован, чтобы предотвратить ситуацию взаимоблокировки. В таком случае, возможно, вы сможете получить доступ к объекту в другое время.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Версия данной статьи для Microsoft Office XP, Office 2000 и Office 97: .
Аннотация
Ошибка выполнения '429': Компоненту ActiveX не удается создать объект
Данная ошибка возникает, когда модели COM (Component Object Model) не удается создать необходимый объект Automation, и поэтому объект Automation оказывается недоступен для Visual Basic. Эта ошибка возникает не на всех компьютерах.
В данной статье описывается диагностика и устранение часто встречающихся проблем, которые могут приводить к возникновению этой ошибки.
Причина 1: DAO не регистрируется должным образом
Перерегистрируйте библиотеку DAO 3.6. Для этого выполните следующие действия:
- На компьютере, на котором установлен Microsoft Access, или на компьютере, на котором находится Microsoft Терминал Windows Server, нажмите кнопку Пуск и нажмите кнопку Запустить. (Если вы не видите Run, вы можете найти его или открыть командную подсказку).
- В текстовом поле Run введите regsvr32 , а затем путь к файлу DAO. Заключим этот путь в кавычках. Например, чтобы зарегистрировать библиотеку DAO 3.6, используйте следующую команду, которая включает путь по умолчанию к файлу библиотеки DAO: regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL" .
Дополнительная информация
В Visual Basic существует несколько причин ошибки 429. Данная ошибка возникает при выполнении одного из следующих условий:
Наличие ошибки в приложении.
Наличие ошибки в конфигурации системы.
Отсутствие какого-либо компонента.
Наличие поврежденного компонента.
Чтобы найти причину возникновения ошибки, необходимо изолировать проблему. Если ошибка 429 возникает на клиентском компьютере, используйте приведенные ниже сведения, чтобы изолировать и устранить ошибку в приложениях Microsoft Office.
Примечание. Некоторые из приведенных ниже сведений применимы также к COM-серверам без Microsoft Office. Однако в данной статье предполагается, что ошибка связана с автоматизацией приложений Microsoft Office.
Причина 2. Отсутствуют одна или несколько ссылок
Проверьте отсутствие ссылок. Для этого выполните следующие действия:
Кроме того, вы можете нажать кнопку Обзор в диалоговом окне Ссылки, чтобы просмотреть расположение файла библиотеки, связанного с отсутствующих ссылок.
Проверка сервера автоматизации
Наиболее распространенной причиной возникновения ошибки при выполнении функции CreateObject или оператора New является проблема с серверным приложением. Обычно причиной возникновения проблемы является установка или конфигурация приложения. Чтобы устранить неполадки, выполните перечисленные ниже действия.
Убедитесь в том, что приложение Microsoft Office, которое необходимо автоматизировать, установлено на локальном компьютере. Убедитесь в возможности запуска приложения. Для этого нажмите кнопку Пуск, выберите команду
Выполнить и попробуйте запустить приложение. Если приложение не запускается вручную, автоматизировать его нельзя.
Перерегистрируйте приложение описанным ниже образом.
В меню Пуск выберите
команду Выполнить.
В диалоговом окне Выполнить введите путь к серверу и в конце строки добавьте параметр /RegServer.
Приложение будет запущено без запроса. Приложение будет перерегистрировано как COM-сервер.
Если причиной возникновения проблемы является отсутствие раздела реестра, в большинстве случаев выполнение перечисленных ниже действий приводит к устранению проблемы.
Проверьте раздел LocalServer32 в разделе CLSID приложения, которое необходимо автоматизировать. Убедитесь в том, что раздел LocalServer32 указывает на правильное местоположение приложения. Проверьте, чтобы путь был указан в кратком формате (DOS 8.3). Сервер не обязательно регистрировать с использованием краткого пути. Однако длинные пути, включающие пробелы, в некоторых системах могут являться причиной возникновения проблем.
Чтобы проверить раздел пути, сохраненного для сервера, запустите редактор реестра описанным ниже образом.
В меню Пуск выберите
команду Выполнить.
Введите regedit, а затем нажмите кнопку
ОК.
Перейдите в раздел HKEY_CLASSES_ROOT\CLSID.
Чтобы найти раздел, представляющий приложение Microsoft Office, которое необходимо автоматизировать, используйте приведенные ниже значения раздела CLSID. Поверьте в разделе CLSID путь, указанный в разделе LocalServer32.
Сервер Microsoft Office Server
Проверьте, чтобы путь соответствовал реальному местоположению файла.
Примечание. Краткие пути могут иногда казаться правильными ошибочно. Например: и Microsoft Office, и Microsoft Internet Explorer (если они установлены в папки по умолчанию) имеют краткий путь вида C:\PROGRA~1\MICROS~X\ (где
X — это число). Этот путь может сначала не показаться кратким путем.
Чтобы определить, что путь указан верно, выполните перечисленные ниже действия.
В меню Пуск выберите
команду Выполнить.
Скопируйте значение из реестра и вставьте его в поле диалогового окна Выполнить.
Примечание. Перед запуском приложения удалите параметр /automation.
Проверьте правильность запуска приложения.
Проверьте шаблон Normal.dot или файл ресурсов Excel.xlb на предмет возможного повреждения. Проблемы при автоматизации Microsoft Word или Microsoft Excel могут возникать вследствие повреждения шаблона Normal.dot в Microsoft Word или файла ресурсов Excel.xlb в Microsoft Excel. Чтобы проверить эти файлы, выполните поиск всех экземпляров Normal.dot или Excel.xlb на локальном жестком диске.
Примечание. В системах с Microsoft Windows 2000 или Microsoft Windows XP может присутствовать несколько копий этих файлов. Для каждого профиля пользователя, установленного в системе, имеется одна копия каждого из этих файлов.
Временно переименуйте файлы Normal.dot или Excel.xlb и повторно запустите проверку автоматизации. Если Microsoft Word и Microsoft Excel не находят эти файлы, они создают их снова. Убедитесь, что код работает. Если при создании нового файла Normal.dot код работает, удалите переименованные файлы. Эти файлы повреждены. Если код не работает, необходимо обратно переименовать эти файлы, чтобы сохранить пользовательские параметры, сохраненные в этих файлах.
На компьютере с операционной системой Windows 2000 можно запустить приложение с учетной записью администратора. Серверы Microsoft Office Server должны иметь доступ на чтение и запись к реестру и дисковому накопителю. Если текущие параметры безопасности запрещают доступ на чтение и запись, загрузка серверов Microsoft Office Server может выполняться с ошибками.
Проверка кода
Прежде чем приступить к устранению ошибки, следует попытаться изолировать отдельную строку кода, из-за которой может возникать проблема.
В случае обнаружения отдельной строки кода, которая является причиной возникновения проблемы, выполните перечисленные ниже действия.
Проверьте, что в коде используется явное создание объекта.
Проблемы легче обнаружить, если можно сузить поле поиска до отдельного действия. Например, найдите использование неявного создания объекта в приведенных ниже примерах.
В обоих примерах используется неявное создание объекта. Microsoft Office Word 2003 не запускается до первого вызова переменной. Поскольку код вызова переменной может быть расположен в различных частях программы, локализация проблемы может оказаться непростой задачей. Бывает сложно определить, когда возникает проблема: при создании объекта Application или при создании объекта Document.
Вместо этого можно указать явные вызовы для создания каждого объекта в отдельности, как показано ниже.
При использовании явных вызовов для создания каждого объекта по отдельности изолировать проблему легче. Это также может сделать код более удобным для чтения.
При создании экземпляра приложения Microsoft Office используйте функцию CreateObject вместо оператора New.
Функция CreateObject устанавливает тесное соответствие с процессом создания, который используется большинством клиентов Microsoft Visual C++. Функция CreateObject также позволяет изменять идентификатор CLSID сервера между версиями. Функцию CreateObject можно использовать с объектами с ранней и поздней привязкой.
Убедитесь, что строка "ProgID", переданная функции
CreateObject, является верной, а затем убедитесь, что она не зависит от версии. Например, используйте строку "Excel.Application" вместо строки "Excel.Application.8". В системе, где возникает проблема, может быть установлена более старая или более новая версия Microsoft Office, отличная от версии, указанной в строке "ProgID".
Используйте команду Erl, чтобы вывести номер строки кода, в которой возникает ошибка. Это может облегчить отладку приложений, которые не запускаются в интегрированной среде разработки. Следующий код сообщает, какой объект
Automation не удается создать (Microsoft Word или Microsoft Office Excel 2003):
Для отслеживания ошибки используйте функцию MsgBox и номер строки.
Используйте позднюю привязку следующим образом:
Для объектов с ранней привязкой необходимо, чтобы их настраиваемые интерфейсы были маршалированы через границы процессов. Если настраиваемый интерфейс нельзя маршалировать при
выполнении функции CreateObject или оператора New, выводится ошибка 429. Объект с поздней привязкой использует определенный системой интерфейс IDispatch, который не требует маршалирования настраиваемого прокси. Чтобы проверить правильность выполнения этой процедуры, используйте объект с поздней привязкой.
Если проблема возникает только при использовании объекта с ранней привязкой, это свидетельствует о наличии проблемы в серверном приложении. Как правило, чтобы устранить проблему, достаточно переустановить приложение, как описано в разделе "Проверка сервера автоматизации" данной статьи.
Читайте также: