奇怪的情况下,定义一个文件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来兼容遗留代码(或者这是一个错误!:)