使用Office 2007在Visual Basic上创建“Access.Application”对象时出错

时间:2014-09-25 13:43:46

标签: vba ms-access access-vba ms-access-2007

我创建了一个应用程序,它接受一个Excel文件并将其插入到我的访问数据库表中。 我在计算机中使用了Microsoft Access 15.0对象库。但是,当我使用Access 2007在另一台计算机上执行应用程序时,它会立即停止。这是代码:

Private Sub xlsTomdb()
    On Error GoTo err_handler
    Dim oAccess As Access.Application
    Set oAccess = CreateObject("Access.Application")
    oAccess.Visible = False
    oAccess.OpenCurrentDatabase App.Path + "\archivi.mdb", True
    oAccess.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "EXCEL", App.Path + "\Export\Final.xls", True
    oAccess.Quit
err_handler:
      MsgBox "The code failed at line " & Erl, vbCritical
End Sub

msgBox显示“代码作为第0行失败”。当我删除错误处理程序时,程序继续正常执行。 在使用Office 2007的另一台PC上运行该程序时,它终止于此功能,运行时错误[-2147467259(80004005)microsoft odbc microsoft access驱动程序类型表达式不匹配]

此功能在按钮点击事件中执行。 有没有理由不开放访问2007,因为我在构建它时使用了Access 2013?

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

EBalla:

" Microsoft Access 15.0 Object"或者DAO 15库属于office 2013.早期版本不会知道这个库。如果您的目标计算机使用的是Office 2007,则需要添加引用" Microsoft Access 12.0对象库"进入你的项目。您遇到了兼容性问题而不是代码问题。

也检查一下: http://allenbrowne.com/ser-38.html

答案 1 :(得分:0)

只需替换以下句子...... 它与Project中引用的任何interop一起工作正常......

从:

Dim oAccess As Access.Application
Set oAccess = CreateObject("Access.Application")

为:

Dim oAccess As object
Set oAccess = CreateObject("Access.Application")