ActiveX 组件无法创建对象或返回对此对象的引用(错误 429)

要创建对象,需要在系统注册表中注册对象的,并且任何关联的动态链接库 (DLL) 均可用。

此错误的原因及解决方案如下:

  • 未注册该类。 例如,系统注册表没有此类的记录,或记录了此类,但指定的文件类型错误或指定的文件无法找到。 如果可能,尝试启动对象的应用程序。 如果注册信息过期或错误,则应用程序应检查注册表并纠正信息。 如果启动应用程序无法修复此问题,请重新运行应用程序的安装程序。

  • 如果无法使用对象所需的 DLL,则原因可能是无法找到该 DLL 或者找到的 DLL 已损坏。 请确保所有关联的 DLL 均可用。 例如,数据访问对象 (DAO) 需要支持因平台而异的 DLL。 如果是此原因导致出现此错误,则可能需要重新运行此类对象的安装程序。

  • 对象在计算机上可用,但它是一个许可的自动化对象,并且无法验证实例化该对象所需的许可证的可用性

    部分对象只能在组件找到许可证密钥之后才能进行实例化,许可证密钥验证对象是否在当前计算机上注册安装。 通过正确安装的类型库对象库引用对象时,将会自动提供正确的密钥。

    如果 CreateObjectGetObject 调用的结果是尝试实例化时,则对象必须查找密钥。 在此情况下,它可能搜索系统注册表或查找安装它时创建的特殊文件,例如,一个文件扩展名为 .lic 的文件。 如果无法找到密钥,则无法实例化对象。

    如果最终用户误设置了对象的应用程序,则将在无意中删除必需的文件或更改系统的注册表,对象可能无法找到其密钥。 如果无法找到密钥,则无法实例化对象。 在此情况下,实例化可能可在开发人员的系统上运行,但不能在用户的系统上运行。 用户可能需要重新安装许可对象。

  • 你正尝试使用 GetObject 函数来检索通过 Visual Basic 创建的类的引用GetObject 无法用于获取通过 Visual Basic 创建的类的引用。

  • 对该对象的访问已遭明确拒绝。 例如,你尝试访问的数据对象可能当前正在使用并且已锁定,以防止出现死锁情况。 如果属以上情况,则您可能能够在其他时间访问对象。

有关其他信息,选择有问题的项并按 F1(在 Windows 中)或 HELP(在 Macintosh 上)。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。