“运行时错误‘-2147023179 (800706b5)”自动化错误接口未知

Posted

技术标签:

【中文标题】“运行时错误‘-2147023179 (800706b5)”自动化错误接口未知【英文标题】:“Run-time error ‘-2147023179 (800706b5)” Automation error The interface is unknown 【发布时间】:2014-02-04 14:38:50 【问题描述】:

我最近在工作时升级了我的电脑和操作系统。我从 Windows XP 升级到 Windows 7。 我的问题是我建立了几个 Access 2007 数据库,它们调用 Excel 文件并打开它们。现在自从升级以来,无论出于何种原因,它们都没有任何功能。我收到以下错误消息:

“运行时错误‘-2147023179 (800706b5)”: 自动化错误 接口未知。

这是我正在运行的代码示例:

Private Sub cmdOpenXL_Click()
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Set xlApp = New Excel.Application
With xlApp
    .Visible = True
    Set xlWB = .Workbooks.Open("P:\unitvalu\morningstar\database\output\Nationwide.xlsx", , False)
End With
End Sub

我已搜索此错误消息,但找不到似乎适合我的解决方案。

【问题讨论】:

【参考方案1】:

您的 Access 项目包含对 Excel 类型库的引用,但该引用已被系统升级破坏。

打开 VB 编辑器,然后从其主菜单中选择“工具”->“参考”。我怀疑您会看到“Microsoft Excel 对象库”参考报告的“缺失”。如果是这样,请取消选中该参考,在下拉列表中找到提供的有效参考并在该参考旁边放置一个复选标记。

单击“确定”,然后从 VB 编辑器的主菜单中选择“调试”->“编译”。如果项目编译没有错误,你就完成了。如果没有,您将不得不修复编译器抱怨的任何问题。

或者,您可以使用后期绑定,这样可以避免设置 Excel 引用。

Private Sub cmdOpenXL_Click()
Dim xlApp As Object ' Excel.Application
Dim xlWB As Object ' Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
With xlApp
    .Visible = True
    Set xlWB = .Workbooks.Open("P:\unitvalu\morningstar\database\output\Nationwide.xlsx", , False)
End With
End Sub

【讨论】:

感谢汉斯普的回复。我查看了已检查的可用参考文献,没有标记为“缺失”。我很幸运,我的旧笔记本电脑还在,我将旧笔记本电脑中的所有参考资料与新笔记本电脑进行了比较。除了对象库的文件路径外,所有引用都相同。我也尝试了上面推荐的编码,但我仍然在代码的第 4 行收到相同的错误消息。 (设置 xlApp = CreateObject("Excel.Application")。再次感谢您对此的帮助。 我不明白如果您安装了 Excel 的功能版本,CreateObject("Excel.Application") 会如何失败。我能想到的唯一其他可能性是您的数据库文件已损坏。您可以通过创建一个新的 db 文件并仅添加一个 VBA 过程来测试这种可能性。如果它在新数据库中工作,那将支持旧数据库已损坏的建议。但是,如果 VBA 程序在新数据库中仍然无法工作,我会感到难过。 :-(

以上是关于“运行时错误‘-2147023179 (800706b5)”自动化错误接口未知的主要内容,如果未能解决你的问题,请参考以下文章