Нет разрешения на чтение для MSysObjects (ошибка: -2147217911) при использовании Microsoft Excel VBA для запроса доступа только к файлам accdb - mdb работает нормально - PullRequest
0 голосов
/ 29 мая 2019

Нет разрешения на чтение для MSysObjects (ошибка: -2147217911) при использовании Microsoft Excel VBA для запроса доступа только к файлам accdb - mdb работает нормально

Использование Microsoft Excel VBA для запроса доступа.

В файле mdb эта строка подключения открывает файл mdb нормально, а строка SQL возвращает нужные мне таблицы.

Connection String: Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\My Files\Word\ADA II Text\Chapters\9 -



8\Access\ADAIICH9TEST.mdb";User Id=admin;Password=;
SQL String: SELECT MSysObjects.Name From MSysObjects WHERE MSysObjects.Name Not Like "MSyS*" And Type=1 AND 

Flags=0 ORDER BY MSysObjects.Name;

В файле accdb эта строка подключения открывает файл accdb нормально, но SQL выдаетследующая ошибка:

Ошибка №: -2147217911 Ошибка описания: записи не могут быть прочитаны;нет разрешения на чтение для MSysObjects.

Почему у него есть доступ к MSysObjects при чтении файла mdb, но не файла accdb?Как предоставить доступ программно или из файла доступа?

Я уже пытался выполнить следующие операторы перед запуском SQL:

'cn.Execute "GRANT SELECT ON MSysObjects TO Admin;"
'cn.Execute "GRANT SELECT ON TABLE MSysObjects TO PUBLIC;"

Они выдают ошибку: Ошибка Нет: -2147467259 Ошибка Описание: Невозможно открыть файл с информацией о рабочей группе ядра СУБД Microsoft Access

.

1 Ответ

0 голосов
/ 29 мая 2019

В Access вам нужно дать разрешение пользователю по умолчанию на доступ к таблице.

В ближайшем окне с Access выполнить

CurrentProject.Connection.Execute "GRANT SELECT ON MSysObjects TO Admin;"

И ваш SQL будет работать после этого.

Возможно, вы захотите изменить строку подключения. IIRC Jet не будет работать после Access 2003, поэтому попробуйте

Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\...ADAIICH9TEST.accdb;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...