我有以下用于连接MDB数据库的VBA代码但是当我尝试连接DAO.OpenDatabase(DbFile)时出现429错误
之前我没有收到此错误,但现在它正在发生。在我的另一台计算机上,此连接正常。
我检查了MDB的路径,这是正确的。
我使用的参考文献是:
- Visual Basic for Applications
- 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
答案 0 :(得分:1)
我在相当长的一段时间里一直在努力解决同样的问题 事实证明我的Office 64位,因此引用的 Microsoft DAO 3.6对象库无法正常工作。
使用引用,结果是使用 Microsoft Office 15.0 Access数据库引擎对象(ACEDAO.DLL)而不是 DAO360 解决了这个问题。
链接到类似的答案,如果我早点发现Writing Excel VBA to receive data from Access
,就会解决我的问题答案 1 :(得分:1)
当我遇到错误429时,我正在构建MDB到ACCDB转换器。这是下载的链接,解决了我的问题。
http://www.microsoft.com/en-ca/download/details.aspx?id=13255
引用: “此下载将安装一组组件,可用于促进2010 Microsoft Office System文件和非Microsoft Office应用程序之间的数据传输。”
答案 2 :(得分:0)
嗯,找到的解决方案是DAO引用丢失,它在我的计算机中,但引用指示程序文件,DAO实际上在程序文件(x86)
答案 3 :(得分:0)
我花了一个晚上解决这个问题,直到我最终通过卸载64位版本的MS Office和MS Access 2010 Redistributable来修复它,然后重新安装它们的32位版本。
在我看来,64位版本在使用DAO时存在兼容性问题。
我描述了我遇到的整个问题in this blog post。