通过 VBA/ADO 通过 SQL 更新 SharePoint 列表中的记录?

问题描述 投票:0回答:1

我管理一个带有 Excel 前端和 Access 兼容后端的系统,该后端通过代码更新。我使用 Excel VBA 和 ADO 库来执行 SQL 语句来更新数据库。

我的组织已决定将所有文件移至 SharePoint。

我一直无法找到动态连接SharePoint系统上的Access数据库的方法。我问了一个问题,但得到的答案是不可能。在该答案中,提到 SharePoint 列表的工作方式与数据库类似。

只要有可能,我希望保留现有 VBA 代码中尽可能多的功能。我使用 VBA 构建 SQL 字符串,然后通过 .execute 命令将其发送到数据库。

连接到 SharePoint 列表后,我是否能够在该列表上执行 SQL 语句?我找到了这个答案,它暗示了我正在尝试做的事情,但没有准确地解决它。

sql vba sharepoint
1个回答
2
投票

当然可以。然而,据我所知,这一切都没有记录,并且 SQL 支持极其有限。

您可以扩展以下内容:

Public Sub Update_some_list(ListId As String, SharePointSite As String)
    Dim c As New ADODB.Connection
    c.Open "Provider=Microsoft.ACE.OLEDB.12.0;WSS;DATABASE=" & SharePointSite & ";LIST=" & ListId
    Dim rs As New ADODB.Recordset
    rs.Open "SELECT * FROM [" & ListId & "]", c, adOpenDynamic, adLockOptimistic
    rs.AddNew
    rs.Fields!SomeField.Value = "Some value"
    rs.Update
End Sub

其中 ListId 是包含大括号的列表 GUID(可以在更改列表设置时在 URL 中找到),SharePointSite 是 SharePoint 网站的 URL。

除了基本的

SELECT
之外,我没有什么运气,所以我建议通过记录集进行CRUD,并在代码中进行任何连接/过滤/旋转(或者根本不进行)。但我还没有做那么多工作,你可能会比我走得更远。

如评论中所述,您还可以在 Access 数据库中链接 SharePoint 网站,该数据库将具有更广泛的 SQL 支持、更方便的名称和记录的行为。

© www.soinside.com 2019 - 2024. All rights reserved.