Чтение MS Access из Excel с использованием Binary.Buffer, чтобы избежать ошибок доступа к БД в режиме администратора - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть таблица Excel "Report.xlsx", которая считывает данные из MS Access "Database.accdb".В Report.xlsx я написал простой макрос «Macro1», который обновляет таблицу данных в электронной таблице.

В MS Access я подключаюсь к Excel и запускаю макрос.

Этот процессзавершается ошибкой со следующей ошибкой в ​​Excel:

DataFormat.Error: The database has been placed in a state by user 'Admin' on machine 'BRNMBL0324' that prevents it from being opened or locked.
Details:
    Portal front-end extracts.accdb

Вот MQuery, который завершается ошибкой:

let
    Source = Access.Database(File.Contents("Database.accdb"), [CreateNavigationProperties=true]),
    #"Table 1" = Source{[Schema="",Item="My database table"]}[Data]
in
    #"Table 1"

Если я читаю базу данных с использованием Binary.Buffer (для * 1012)* процесс работает:

let
    MyDbBinary = Binary.Buffer(File.Contents("Database.accdb")),
    Source = Access.Database(MyDbBinary, [CreateNavigationProperties=true]),
    #"Table 1" = Source{[Schema="",Item="My database table"]}[Data]
in
    #"Table 1"

Поскольку в электронной таблице имеется только один запрос, я уверен, что проблема не в параллельных запросах. Я закрыл и снова открыл базу данных Access, поэтому я знаю, что проблемане является несохраненным объектом в MS Access.

Является ли использование Binary.Buffer надежным способом решения этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...