我最近问了一个关于在 VBA/ADO 中使用 SQL 更新 SharePoint 列表的问题,并得到了一个很好的答案,我已经设法开始工作了。我目前的代码如下:
Public Sub Update_some_list()
Dim ListID As String, SharePointSite As String
ListID = "Test_Staff"
SharePointSite = "https://companyname.sharepoint.com/sites/proc2126"
Dim c As New ADODB.Connection
c.Open "Provider=Microsoft.ACE.OLEDB.12.0;WSS;DATABASE=" & SharePointSite & ";LIST=" & ListID
Dim SQL As String
SQL = "UPDATE [Test_Staff] SET [StaffName]='ChrisTest' WHERE [UserName]='melvilc';"
c.Execute SQL
c.Close ' I want to eliminate the requirement to close the connection, then re-open with a different list
ListID = "Duplicate_Test"
c.Open "Provider=Microsoft.ACE.OLEDB.12.0;WSS;DATABASE=" & SharePointSite & ";LIST=" & ListID
SQL = "UPDATE [Duplicate_Test] SET [Three]='ChrisTest' WHERE [Four]='Deleted';"
c.Execute SQL
End Sub
这很好用。但理想情况下,我希望有一种方法可以在同一连接中更新多个 SharePoint 列表。我现有的代码基于与 MS Access 兼容的数据库,在执行指定表名的 SQL 语句之前,我会使用单个数据库连接。但是,当我尝试使用 SharePoint 列表执行此操作时,我收到一条错误消息“没有为一个或多个必需参数提供值”。
这就是为什么在上面的代码中,我需要关闭“Test_Staff”连接并打开一个不同的“Duplicate_Test”连接。
但是有没有办法使用与 SharePoint 站点相同的通用连接,并使用 SQL 来准确指定要更新的列表?