奇怪的情况下,定义一个文件path连接到Excel VBA使用ADO访问.accdb数据库,但它告诉我找不到.mdb文件

我正在使用ADO连接在Excel VBA中编写代码以打开Access .accdb数据库。 我将文件path定义如下,但是当我运行我的代码时,错误消息告诉我“找不到文件C:\ Users \ sevenice \ Documents \ EM Database.mdb”。 这很奇怪,我从来没有定义在.mdb文件范围内的文件path。

但是,当我将accdb文件另存为mdb文件,然后将mdb文件放在“文档”文件夹下时,该代码将起作用! 但我无法弄清楚为什么。

我的代码有什么问题吗? 或者在Access 2007中存在一些默认的文件path? 我的代码是在Excel 2007中。

谢谢,Bing

Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset

Dim Dbfilepath As String

Dbfilepath = "C:\Users\sevenice\Desktop\EM Database.accdb" Set cnn = New ADODB.Connection cnn.Open "Provider= Microsoft.ACE.OLEDB.12.0;" & " Data Source=" & Dbfilepath & ";" & "Persist Security Info =False;" Set rst = New ADODB.Recordset rst.ActiveConnection = cnn 

你是否在你的SQL文本中引用数据库名称(你已经从你的代码中截取了这个文件)?

例如

SELECT [g/gtop] FROM [EM Database].[N (t) Data]

AFAIK这个语法将尝试在当前目录中find一个数据库EM Database.mdb 。 我想它使用.mdb来兼容遗留代码(或者这是一个错误!:)