【发布时间】:2015-04-07 19:22:54
【问题描述】:
我有以下 VBA 代码,用于连接到 MDB 数据库,但是当我尝试连接 DAO.OpenDatabase(DbFile) 时出现 429 错误
我之前没有收到此错误,但现在正在发生。在我的另一台计算机上,此连接工作正常。
我检查了MDB的路径,是正确的。
我使用的参考是:
- 适用于应用程序的 Visual Basic
- Microsoft Excel 15.0 对象库
- OLE 自动化
- Microsoft Office 15.0 对象库
- Microsoft DAO 3.6 对象库
我正在使用 Excel 2013(在其他计算机上是 Excel 2010),但正如我所说,它在 2013 年之前就可以使用。
请问有谁知道如何解决这个问题?
Private Sub IniciaDB()
Dim rs As Recordset
Dim fld As Variant
Dim DbFile as String
DbFile = "D:\Documentos\PMbox\PPMdatabase2.MDB"
On Error Resume Next
Set OpenConn = DAO.OpenDatabase(DbFile)
If Err.Number = 3024 Then MsgBox "Check connection string in the VBA StaticClass object", vbOKOnly
Set ObjAccess = CreateObject("Access.Application")
ObjAccess.Visible = False
ObjAccess.OpenCurrentDatabase (DbFile)
'runSQL ("INSERT INTO tabela_teste VALUES ('My name', 34)")
Set rs = runCursorSQL("SELECT * FROM tabela_teste")
Do While Not rs.EOF
For Each fld In rs.Fields
Debug.Print fld.Value & ";";
Next
rs.MoveNext
Loop
closeResources
End Sub
【问题讨论】:
-
哪一行会抛出这个错误?错误描述是什么?
-
行是:Set OpenConn = DAO.OpenDatabase(DbFile)
-
错误描述为:“ActiveX组件无法创建对象”
-
我可能会建议您使用较低版本的 DAO 库。很可能另一台机器安装了必要的东西才能打开 MDB,而这台机器可能没有。您的机器是否在两台机器上安装了相似版本的 MS-Access?
-
没有其他 DAO 版本可供选择。我刚刚删除了 DAO 引用,然后我再次添加它,当我添加时出现错误“加载 DLL 时出错(错误 48)”,似乎 DAO DLL 在我的计算机中有问题:/