Странная ситуация, определить путь к файлу, соединяющемуся с базой данных Access .accdb в Excel VBA, используя ADO, однако он говорит мне, что не может найти файл .mdb - PullRequest
1 голос
/ 07 октября 2011

Я пишу код в Excel VBA, используя соединение ADO, чтобы открыть базу данных Access .accdb.Я определил путь к файлу как показано ниже, но когда я запускаю свой код, появляется сообщение об ошибке, в котором говорится, что «не удалось найти файл C: \ Users \ sevenice \ Documents \ EM Database.mdb».Это так странно, что я никогда не определяю тот путь к файлу, который указан в файле .mdb.

Однако, когда я сохраняю файл accdb как файл mdb, а затем помещаю файл mdb в папку Documents, код работает!Но я не мог понять почему.

Что-то не так с моими кодами?Или в Access 2007 существует какой-то путь к файлу по умолчанию?Мой код в Excel 2007.

Спасибо, Bing

Dim cnn как новый ADODB.Соединение Dim rst как новый 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

1 Ответ

1 голос
/ 07 октября 2011

Используете ли вы ссылку на имя базы данных в тексте SQL (который вы удалили из своего кода как опубликованный)?

например.

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

AFAIK этот синтаксис попытается найти базу данных EM Database.mdb в текущем каталоге. Я предполагаю, что он использует .mdb для совместимости с устаревшим кодом (или это ошибка!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...