我创建了一个应用程序,它接受一个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?
有人可以帮忙吗?
答案 0 :(得分:0)
EBalla:
" Microsoft Access 15.0 Object"或者DAO 15库属于office 2013.早期版本不会知道这个库。如果您的目标计算机使用的是Office 2007,则需要添加引用" Microsoft Access 12.0对象库"进入你的项目。您遇到了兼容性问题而不是代码问题。
答案 1 :(得分:0)
只需替换以下句子...... 它与Project中引用的任何interop一起工作正常......
从:
Dim oAccess As Access.Application
Set oAccess = CreateObject("Access.Application")
为:
Dim oAccess As object
Set oAccess = CreateObject("Access.Application")