Консультации по подключению к базе данных MDB на SharePoint из Excel VBA

Несколько лет назад я написал с нуля сложную систему на основе Excel для своей организации, которая использовала базу данных, совместимую с Access, в качестве серверной части. Это произошло в ответ на неработающую функцию «общей электронной таблицы» Excel, которая часто приводила к сбою и приводила к повреждению или потере данных.

Рабочая система хранилась (и до сих пор хранится) на нашем общем сетевом диске.

Сейчас принято решение, что общий сетевой диск будет выведен из эксплуатации, а все общие файлы будут находиться в SharePoint. По большей части это работает хорошо, и все остальные файлы были успешно переданы. Однако мне еще не удалось найти способ заставить мою систему (интерфейс Excel и серверную часть Access) работать с ней.

Когда я пытаюсь запустить:

Dim LocalCnn As New ADODB.Connection
With LocalCnn
    .Provider = CheckProvider(strPath:=DBPath)
    Select Case Mode
        Case "RW"
            .Mode = adModeReadWrite
        Case "RO"
            .Mode = adModeRead
    End Select
    .Open ConnStr ' ERROR LINE
End With

.. тогда я получаю сообщение об ошибке

ConnStr оценивается как:

Data Source=https://myorganisation.sharepoint.com/sites/proc2126/Shared Documents/Archive/Test.xlsmDB_ADMIN.mdb;Jet OLEDB:Database Password=mypassword

Возможно, это связано с пробелом в пути к файлу? Я ничего не могу с этим поделать, так как самый высокий каталог, к которому у меня есть доступ, — это «Общие документы» (с пробелом). Точное сообщение об ошибке, которое я получаю:

Ошибка выполнения "-2147467259 (80004005)":

Ошибка автоматизации

Неопределенная ошибка

Я попытался найти проблему в Google, подключившись к файлу базы данных с помощью VBA в SharePoint, но, похоже, неясно, возможно ли это.

Чтобы уточнить: это должно работать на 100% в SharePoint, без предварительной загрузки файлов на локальный диск.

Благодарен за любой совет, который вы можете дать!

ПРИМЕЧАНИЕ. Я вообще НЕ использую программу MS Access. Этот вопрос был помечен ms-access, потому что файлы mdb совместимы с Access, вот и все. Я использую внешний интерфейс Excel, но использую VBA для прямого подключения к файлам базы данных, полностью минуя программное обеспечение Access.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Везет, как утопленнику! Доступ поддерживается только на локальных дисках или общих ресурсах SMB с отключенной арендой, а предыдущие варианты запуска Access на SharePoint были удалены (с 2010 года).

Вы можете напрямую перенести данные из Access в списки SharePoint (Инструменты базы данных -> Переместить данные -> SharePoint), а затем использовать недокументированную опцию WSS поставщика ACE OLEDB для прямого подключения к спискам SharePoint. См. connectionstrings.com на провайдере ACE OLEDB в самом низу.

Я настоятельно рекомендую не делать этого и либо заставить вашу организацию получить приличную СУБД, которую можно использовать в качестве бэкэнда (лучше всего), либо заставить их не полностью удалять общий ресурс SMB. Миграция приложения в списки SharePoint сопряжена со значительными замедлениями, ограничениями на выполнение запросов и общими неудобствами, даже если она может работать (к сожалению, исходя из опыта).

Я вообще не пользуюсь MS Access. Я использую Excel с VBA для НЕПОСРЕДСТВЕННОГО подключения к файлам базы данных. Я пометил это только с помощью ms-access, потому что файлы базы данных совместимы с Access. Извините - я должен был уточнить это в своем вопросе.

Chris Melville 23.11.2022 13:55

Я понимаю. Это не относится к моему ответу. Доступ, как и при хранении данных в файлах .mdb или .accdb с использованием ядра базы данных Access, по-прежнему не поддерживается ни на чем, кроме локальных дисков или общих ресурсов SMB.

Erik A 23.11.2022 13:56

Спасибо. Есть ли какой-либо внешний источник, который вы можете мне показать, в котором прямо говорится, что вы не можете устанавливать живые подключения к файлам MDB в SharePoint? Это было бы полезно.

Chris Melville 23.11.2022 14:56

Нет, поскольку в документации обычно указывается, что поддерживается, а не что нет, а ядро ​​базы данных Access также плохо документировано (предлагаемое решение для использования WSS в строке подключения не документировано Microsoft и редко упоминается в других местах). Но я не заслужил здесь свою репутацию, распространяя чепуху.

Erik A 23.11.2022 15:10

Я не знаком с WSS, а ваша ссылка указывает на «списки SharePoint», с которыми я тоже не знаком. Это обычный файл .mdb, полностью созданный движком JET с помощью Excel VBA. Как вы думаете, есть ли шанс, что я смогу делать то, что хочу?

Chris Melville 23.11.2022 16:01

Да, если у вас установлен Access, вы сможете открыть базу данных в Access и выполнить простую миграцию из таблиц Access в списки SharePoint (которые, по сути, представляют собой интерактивные таблицы в SharePoint, которые поддерживают несколько пользователей одновременно, исключая любые сложные данные). например, двоичные объекты), затем проверьте идентификатор списка, который есть у каждой таблицы, используйте WSS и настройте имена таблиц на идентификаторы SharePoint. Часто возникают сложности, такие как ограниченная поддержка SQL и появление странных полей соответствия, но с этим можно справиться.

Erik A 23.11.2022 16:09

Спасибо, Эрик А. Я погуглю, как перенести таблицы в списки SharePoint! А пока примите мой голос - и следите за любыми дополнительными вопросами, которые могут у меня возникнуть, когда я попытаюсь узнать, как это сделать :)

Chris Melville 23.11.2022 16:22

Другие вопросы по теме