使用Access VBA编辑共享点列表

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

我已经创建了一个Sharepoint列表,然后将该列表导入到Access中。我只创建了UserName,FirstName,LastName,LastLogIn和LastVersion。但是默认情况下,Sharepoint似乎还包含其他几列。

我可以打开该链接列表,并以表视图模式添加新记录。它们也出现在Sharepoint中。enter image description hereenter image description here

我的问题是,当我尝试使用VBA编辑行时,出现了只读错误。

100     Dim sql As String
110     sql = "SELECT " & _
                  "* " & _
              "FROM " & _
                  "tblUsers " & _
                  "INNER JOIN " & _
                  "tblSettings " & _
                  "ON " & _
                  "tblUsers.UserName = tblSettings.UserName "

120     Set rst = CurrentDb.OpenRecordset(sql)
130     rst.MoveFirst
140     rst.Edit
150     rst.Fields("LastLogIn") = Now
160     rst.Fields("LastVersion") = version
170     rst.Update
180     rst.Close

FYI:这个简单的代码是让我知道他们上次登录的时间以及上次使用的前端版本。

我收到以下错误

3027:无法更新。数据库或对象是只读的。

当表是另一个Access文件中的链接表时,此代码可完美工作。但是现在我试图将后端移动到Sharepoint列表中,VBA似乎只能读取。有什么想法吗?

提前感谢。

sharepoint access-vba sharepoint-list
1个回答
0
投票

因此事实证明答案是使用SQL语句更新表。

这是我的代码。

100     Dim sql As New sqlClass
110     With sql
120         .Add "UPDATE"
130         .Add "    tblSettings"
140         .Add "    INNER JOIN"
150         .Add "    tblUsers"
160         .Add "    ON"
170         .Add "    tblSettings.UserName = tblUsers.UserName"
180         .Add "SET"
190         .Add "    tblUsers.LastLogin = #" & Now & "#,"
200         .Add "    tblUsers.LastVersion = """ & version & """"
210         .Execute
220     End With

显然,我在那里有一个自定义类,但是基本上,SqlClass包含该语句并在其中运行了一个运行此函数的函数:

CurrentDb.Execute Me.Code, dbFailOnError

Me.Code是包含SqlClass中的SQL语句代码的字符串。

希望这对其他人有帮助。

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