Может быть, мне следует объединить и уточнить :) В контексте вашего исходного вопроса ответ таков:
Вы не можете сделать это через SQL / Query Builder, если базы данных: и Access, и имеют разные mdw. Однако , если обе базы данных являются Access и имеют одинаковое mdw (как указано в вашем последующем комментарии), то вы можете сделать это через SQL / Query Builder. В этом конкретном сценарии вы бы не (не могли) сделать это через строку подключения, вы бы сделали это, выполнив шаги 1-4 ниже, а затем замените шаг 5a на 5b.
Если базы данных имеют и Access, и разные mdw , то единственный способ указать другую рабочую группу - использовать строку подключения. Однако SQL / Query Builder выдаст ошибку ISAM, если вы попытаетесь через свойство строки соединения (на шаге 5a ниже). Таким образом, вы не можете сделать это через построитель запросов. Вы можете сделать это с VBA, используя ADO, как в моем примере, опубликованном ранее.
Помните, что свойство строки подключения в построителе запросов предназначено для не -Access баз данных, исходная база данных для баз данных Access с таким же (или нет) mdw. Для баз данных Access с различными mdws единственным известным мне решением является VBA, которое я выложил ранее.
Теперь об использовании строки подключения непосредственно в SQL. Вы можете сделать это. Но есть некоторые предостережения: он не будет работать с другими базами данных Access. Если вы сделаете это с таблицами dbo SQL Sever, вам придется отредактировать SQL, сгенерированный построителем запросов, чтобы удалить «dbo». Приставка.
Я думаю, что самый простой способ - просто провести вас через то, что я пытаюсь сказать.
- Установите рабочую строку соединения для базы данных без доступа . (Я предлагаю, чтобы было проще, просто используйте файл Excel.)
- Когда у вас есть строка, откройте построитель запросов в Access.
- Закрыть диалоговое окно выбора таблицы.
- Нажмите Alt-Enter, чтобы открыть Query Properties.
5а. В «Source Connect Str» вставьте строку подключения.
* 5b. Вставьте путь к другой базе данных в «Исходной базе данных».
- Теперь добавьте свои таблицы и создайте запрос.
- Перейти к представлению SQL. Посмотрите, что было построено.
Но этот подход практически не имеет значения, хотя он действителен для не -Access баз данных, не работает для Access . (Это немного расстраивает, я знаю.)
Пример используемой строки подключения:
SELECT [Sheet1$].F1
FROM [Sheet1$] IN '' [Excel 5.0;HDR=NO;IMEX=2;DATABASE=C:\Users\Oorang\Documents\Book1.xls];
Я действительно не думаю, что это действительно
ACE / Jet синтаксис для установки OLE DB
Строка подключения в базу данных IN
пункт.
Точно так же, как к вашему сведению, вы используете строку подключения, как показано выше, но если вы используете свойство Source Db, вы получите то, что ниже :) (Я протестировал все свои примеры перед тем, как опубликовать их:))
SELECT *
FROM Table1 IN 'C:\Users\Oorang\Documents\db2.mdb';