繁体   English   中英

关于如何连接到 SharePoint 上的 MDB 数据库的建议 来自 Excel VBA

[英]Advice on how to connect to an MDB database on SharePoint from Excel VBA

几年前,我为我的组织编写了一个基于 Excel 的复杂系统,该系统使用与 Access 兼容的数据库作为后端。 这是为了应对损坏的 Excel “共享电子表格”功能,该功能会经常崩溃并导致数据损坏或丢失。

工作系统曾经(现在仍然)存储在我们的 shared.network 驱动器上。

现在已经决定停用 shared.network 驱动器,所有共享文件都将在 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)”:

自动化错误

未指定的错误

我曾尝试用谷歌搜索问题,使用 SharePoint 上的 VBA 连接到数据库文件,但是否可行似乎尚无定论。

澄清一下:这需要在 SharePoint 内 100% 工作,而不必先将文件下载到本地驱动器。

感谢您提供的任何建议!

注意:我根本没有使用 MS Access 程序。 这个问题已经用 ms-access 标记了,因为 mdb 文件是 Access 兼容的,仅此而已。 我正在使用 Excel 前端,但使用 VBA 直接连接到数据库文件,完全绕过 Access 软件。

运气不好,Access 仅在本地驱动器或禁用租赁的 SMB 共享上受支持。 之前在 SharePoint 上运行 Access 的选项已被删除(自 2010 年以来)。

您可以直接将数据从 Access 迁移到 SharePoint 列表(数据库工具 -> 移动数据 -> SharePoint),然后使用 ACE OLEDB 提供程序的未记录的WSS选项直接连接到 SharePoint 列表。 请参阅最底部的 ACE OLEDB 提供程序上的connectionstrings.com

我强烈建议不要这样做,要么让您的组织获得可用作后端(最好)的体面 RDBMS,要么让他们不完全删除 SMB 共享。 将应用程序迁移到 SharePoint 列表将带来显着的速度减慢、查询可以运行的限制以及普遍的痛苦,即使它可以工作(不幸的是,根据经验)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM