Страницы: 1
RSS
Имопрт dbf файла в Power Query
 
Здравствуйте. Пытаюсь загрузить dbf файл в PQ. Пока не получается. Загрузил по ссылке с другой темы Microsoft Access Database Engine 2010. Пытался загрузить через OLE DB. Но так и не понял какие характеристики выбрать.
Но как открыть данный файл пока не понял  :(
Если кто сталкивался, помогите пожалуйста.
 
Исходный файл:
Изменено: rafa_el - 20.01.2021 11:30:04
 
Доброе время суток.
Варианты.
Код
let
    Source = OleDb.Query("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\path;Extended Properties=dBASE IV;", "Select * From [02200002.dbf]")
in
    Source

Код
let
    Source = Odbc.Query("dbq=c:\temp\path;dsn=dBASE Files", "Select * From [02200002.dbf]")
in
    Source

Код
let
    Source = Odbc.Query("Driver={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};Dbq=c:\temp\path", "Select * From [02200002]")
in
    Source
Изменено: Андрей VG - 20.01.2021 15:42:55
 
Андрей VG,  получилось 3м вариантом. Спасибо!  :)
Для тех, кто в танке (как я):
Вставляем один из вариантов в "расширенный редактор" в редакторе PQ, далее изменяем путь к фалу на ваш, далее выбираем по умолчанию или пользовательский
Изменено: rafa_el - 20.01.2021 16:37:33
 
Еще раз здравствуйте, подскажите, а если у меня в заданной папке несколько файлов и я хочу сначала вывести список этих файлов на подобие "получить данные->из файла->из папки" как это можно реализовать?
 
rafa_el, Так и реализовать "получить данные->из файла->из папки", и дальше ваш код, который сработал, примерно так:
Код
let
    Source = Folder.Files("E:\BD"),
    Custom = Table.AddColumn(Source, "Пользовательский", each Odbc.Query("Driver={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};Dbq="&Text.Start([Folder Path],Text.Length([Folder Path])-1), "Select * From ["&Text.BeforeDelimiter([Name],".")&"]")),
    SelectedColumns = Table.SelectColumns(Custom,{"Пользовательский", "Name"}),
    Expanded = Table.ExpandTableColumn(SelectedColumns, "Пользовательский", Table.ColumnNames(SelectedColumns{0}[Пользовательский]))
in
    Expanded
Изменено: PooHkrd - 19.02.2021 18:48:55
Вот горшок пустой, он предмет простой...
 
Файлы открылись.  :)
Но оказывается, нужно все их "разрешить", а когда их больше 300 это немного не удобно...То есть необходимо 300 раз сделать "изменить разрешение"->Выполнить.
Подскажите, возможно ли массово всё разрешить?
"изменить разрешение"->Выполнить
 
rafa_el, попробуйте снять вот эту галочку. Возможно это поможет.
Вот горшок пустой, он предмет простой...
 
rafa_el, а какова цель в пофайловом запросе? Чем не устраивают SQL средства?! Один раз ответили...
Код
let
    Source = Odbc.Query(
        "Driver={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};Dbq=c:\Path\dbf", 
        "Select * From [02200002]"
        & " Union All Select * From [001]"
        & " Union All Select * From [file01]"
    )
in
    Source
 
Андрей VG, я так понимаю тем, что количество файлов в папке более 300.
С другой стороны можно обратившись запросом PQ к папке слепить строку SQL-запроса и его один раз запулить драйверу, пущай собирает.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
слепить строку SQL-запроса
Привет, Алексей.
Тут я не совсем оказался прав, есть ограничения Access specifications. Действительно больше 50 штук за раз не даёт использовать - в любом тогда случает придётся разбивать. Так что пункт #8 - актуален.
Страницы: 1
Наверх