尝试使用DAO从外部Access (Outlook/Excel)连接到有效的数据库会生成一个3343无法识别的数据库格式



感谢您的网站。美妙的信息。

简而言之,我正在尝试执行Outlook(2007)中的以下代码,尽管它在Excel中也失败了。作品伟大的内部访问!

Sub Test
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Const dbPath As String = "C:Userse574651.GLOBALDocumentsNorthwind 2007.accdb"
    On Error Resume Next
    Set db = DAO.OpenDatabase(dbPath)
    'Set rs = db.OpenRecordset("customers")
    Debug.Print Err.Number, Err.Description
End Sub

3343无法识别的数据库格式'C:Userse574651。全球文档罗斯文2007. accdb"。

我可以访问(没有双关语)这个数据库一整天使用ADO,我怀疑问题在于以下ADO语句:

ADOConn。Provider = "Microsoft.ACE.OLEDB.12.0"

如何使用DAO提供此功能?

我在我的VBA首选项中包含了对DAO 3.6库的引用。我已经包含了其他Microsoft 12.0库引用,所以我要么破坏了一些东西,要么省略了一些东西。

任何帮助都将是非常感谢的。

谢谢!

最新的DAO库格式为:

Microsoft Office x.x Access Database Engine Object Library

所以去掉3.6的参考,使用一个更新的库。然后,一个例子:

Sub XLAccess()
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim sDb As String
Dim sSQL As String
Dim qdf As QueryDef
    sDb = "Z:DocsTest.accdb"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(sDb)
    ''A stored query would be better
    sSQL = "Parameters p1 Text, p2 Datetime; " _
    & "INSERT INTO Table1 (AText,ADate) Values ([p1],[p2])"
    Set qdf = db.CreateQueryDef("", sSQL)
    qdf.Parameters!p1 = "ABC"
    qdf.Parameters!p2 = #1/17/2013#
    qdf.Execute dbFailOnError
    Debug.Print qdf.RecordsAffected
End Sub

使用最新的版本或最新的访问数据库

例如:在你的Visual Basics窗口= 转到Tools> References>Microsoft Office 14.0 Access Database Engine Object Library

然后使用以下命令打开数据库:

Dim database_data As DAO.Database
Dim rsData As DAO.Recordset
Dim field_index As Integer
Set database_data = DAO.OpenDatabase("demo1.accdb")
有时,可能需要键入数据库文件的完整路径,例如:"C: 用户文档 项目 demo1.accdb "

最新更新