Подключение нескольких баз данных в запросе выбора в MS Access

#sql #ms-access

#sql #ms-access

Вопрос:

Теперь у меня есть три базы данных, и я хочу получить данные из 2 таблиц в другой базе данных.

Например, ledger таблица в master базе данных, book таблица в general базе данных.

Итак, сначала я написал запрос следующим образом

  select * 
 from master.ledger, general.book
  

Отображается ошибка.

Не удалось найти файл в C:Documents и Настройки MyDocuments…

Затем я написал запрос, подобный этому

 select * 
from ledger, book IN 'C:Documents and SettingsUserDesktop2014fa.mdb', 
'C:Documents and SettingsUserDesktop2014general.mdb'
  

Это также показывает ошибку

‘Синтаксическая ошибка в предложении From’

Но если я использую одну базу данных, например

 select * 
from ledger IN 'C:Documents and SettingsUserDesktop2014fa.mdb';
  

это работает правильно. Как я могу подключить несколько баз данных в запросе выбора?

Комментарии:

1. Запятые не помогут. Почему бы просто не связать таблицы?

2. Смотрите office.microsoft.com/en-ie/access-help/…

Ответ №1:

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

 SELECT TblA.*, TblB.* FROM [;DATABASE='C:Documents and SettingsUserDesktop2014fa.mdb'].Master AS tblA
INNER JOIN [;DATABASE='C:Documents and SettingsUserDesktop2014general.mdb'.[General] AS TblB
ON tblA.SomeField=tblB.SomeField
  

Конечно, это предполагает, что у вас есть общее поле между ними.

Комментарии:

1. Согласен — и я указал, что связанные таблицы проще всего.

2. Это необходимо там, где связанная таблица невозможна. Пути к БД будут меняться каждый раз, мы можем выбирать динамически или с помощью кода.