Выполнить запрос, связанный с другой базой данных в VBA Access - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь запустить сохраненный запрос в VBA Access. Этот запрос связан с другой базой данных и выглядит так:

SELECT * FROM TABLE IN 'C:\USERS\Another_database.accdb'

Этот запрос сохраняется как "My_query" в первой базе данных Access. Код VBA выглядит следующим образом:

Function My_function()
     Set rst = CurrentDb.OpenRecordset("My_query", dbOpenDynaset)
End Function

Когда я пытаюсь запустить его, я получаю сообщение об ошибке:

Ошибка времени выполнения '3219'

Есть идеи, почему? Работает для обычных запросов (без IN 'C:\USERS\Another_database.accdb' part.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Может быть, вам нужно сначала определить набор записей или попытаться удалить кавычки, которые есть в примере?Следующий пример работает нормально:

Dim rs as Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Field FROM Table IN 'here goes your path'")

Теперь у вас есть Array rs (), в котором вы можете выполнить цикл.

0 голосов
/ 16 ноября 2018

Наиболее эффективный способ получения данных из другой базы данных Access на постоянной основе - это Связанные таблицы .

  • Нажмите External Data на ленте, затем New Data SourceFrom DatabaseAccess
    img1

  • Найдите в исходной базе данных и убедитесь, что вы выбрали Link to the data source by creating a linked table
    img2

  • Выберите одну или несколько таблиц, которые вы хотите связать
    [img3

Будут созданы связанные таблицы i, и вы сможете запрашивать связанные таблицы, как если бы они были локальными для текущей базы данных.


Дополнительная информация:

...