Несколько лет назад я написал с нуля сложную систему на основе 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.
Везет, как утопленнику! Доступ поддерживается только на локальных дисках или общих ресурсах SMB с отключенной арендой, а предыдущие варианты запуска Access на SharePoint были удалены (с 2010 года).
Вы можете напрямую перенести данные из Access в списки SharePoint (Инструменты базы данных -> Переместить данные -> SharePoint), а затем использовать недокументированную опцию WSS
поставщика ACE OLEDB для прямого подключения к спискам SharePoint. См. connectionstrings.com на провайдере ACE OLEDB в самом низу.
Я настоятельно рекомендую не делать этого и либо заставить вашу организацию получить приличную СУБД, которую можно использовать в качестве бэкэнда (лучше всего), либо заставить их не полностью удалять общий ресурс SMB. Миграция приложения в списки SharePoint сопряжена со значительными замедлениями, ограничениями на выполнение запросов и общими неудобствами, даже если она может работать (к сожалению, исходя из опыта).
Я понимаю. Это не относится к моему ответу. Доступ, как и при хранении данных в файлах .mdb или .accdb с использованием ядра базы данных Access, по-прежнему не поддерживается ни на чем, кроме локальных дисков или общих ресурсов SMB.
Спасибо. Есть ли какой-либо внешний источник, который вы можете мне показать, в котором прямо говорится, что вы не можете устанавливать живые подключения к файлам MDB в SharePoint? Это было бы полезно.
Нет, поскольку в документации обычно указывается, что поддерживается, а не что нет, а ядро базы данных Access также плохо документировано (предлагаемое решение для использования WSS в строке подключения не документировано Microsoft и редко упоминается в других местах). Но я не заслужил здесь свою репутацию, распространяя чепуху.
Я не знаком с WSS, а ваша ссылка указывает на «списки SharePoint», с которыми я тоже не знаком. Это обычный файл .mdb, полностью созданный движком JET с помощью Excel VBA. Как вы думаете, есть ли шанс, что я смогу делать то, что хочу?
Да, если у вас установлен Access, вы сможете открыть базу данных в Access и выполнить простую миграцию из таблиц Access в списки SharePoint (которые, по сути, представляют собой интерактивные таблицы в SharePoint, которые поддерживают несколько пользователей одновременно, исключая любые сложные данные). например, двоичные объекты), затем проверьте идентификатор списка, который есть у каждой таблицы, используйте WSS и настройте имена таблиц на идентификаторы SharePoint. Часто возникают сложности, такие как ограниченная поддержка SQL и появление странных полей соответствия, но с этим можно справиться.
Спасибо, Эрик А. Я погуглю, как перенести таблицы в списки SharePoint! А пока примите мой голос - и следите за любыми дополнительными вопросами, которые могут у меня возникнуть, когда я попытаюсь узнать, как это сделать :)
Я вообще не пользуюсь MS Access. Я использую Excel с VBA для НЕПОСРЕДСТВЕННОГО подключения к файлам базы данных. Я пометил это только с помощью ms-access, потому что файлы базы данных совместимы с Access. Извините - я должен был уточнить это в своем вопросе.