Цитата |
---|
PooHkrd написал: а вот та картинка, что я нарисовал сверху. Так не сработает? |
Привет, Алексей.
Так проблема в том, что нужно сделать несколько OleDb.DataSource подключений к нескольким базам данных. Условно есть папка, где лежит несколько файлов mdb. Нужно выполнить к каждой из них SQL запрос, и результаты этих запросов объединить в одну таблицу, которую где-то будет использоваться (вывод на лист, либо источник для сводной, либо в модель данных). Как-то так, если правильно ставить вопрос задачи в терминах Power Query.
Вот тут и проблема. Так как OleDb.DataSource это подключение к базе данных, то для него требуется логин и пароль. И каждое такое подключение Power Query с целью безопасности требует вводить ручками (есть запрет для ввода данных в строке запроса). Если для примера взять базу Access и прописать User Id. то получим сообщение
Цитата |
---|
Expression.Error: OLE DB: Строка подключения недопустима. Свойство подключения "user id" можно указать только с помощью учетных данных. Сведения: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Path\1.mdb;User Id=Admin; |
Вариант, как всё-таки выполнить SQL запрос к базе Access через Access.Database
Код |
---|
let
dbTables = Table.FromColumns({{"C:\Path\1.mdb", "C:\Path\2.mdb"}}, {"BaseFile"}),
toTables = List.Transform(dbTables[BaseFile], each Value.NativeQuery(Access.Database(File.Contents(_)), "Select * From TData")),
result = Table.Combine(toTables)
in
result |