Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Access VBA编辑Sharepoint列表_Vba_Ms Access_Sharepoint_Sharepoint List - Fatal编程技术网

使用Access VBA编辑Sharepoint列表

使用Access VBA编辑Sharepoint列表,vba,ms-access,sharepoint,sharepoint-list,Vba,Ms Access,Sharepoint,Sharepoint List,我创建了一个Sharepoint列表,然后将该列表导入Access。 我只创建了UserName、FirstName、LastName、LastLogIn和LastVersion。但是,Sharepoint默认情况下似乎还有其他一些专栏 我可以在表视图模式下打开该链表并添加新记录。它们也出现在Sharepoint中。 我的问题是,当我尝试用VBA编辑一行时,我得到一个错误,它是只读的 100 Dim sql As String 110 sql = "SELECT " &

我创建了一个Sharepoint列表,然后将该列表导入Access。 我只创建了UserName、FirstName、LastName、LastLogIn和LastVersion。但是,Sharepoint默认情况下似乎还有其他一些专栏

我可以在表视图模式下打开该链表并添加新记录。它们也出现在Sharepoint中。

我的问题是,当我尝试用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
仅供参考:这个简单的代码是让我知道他们最后一次登录的时间和他们最后使用的前端版本

我得到以下错误

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

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


提前感谢。

所以答案是使用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语句代码的字符串


希望这对其他人有所帮助。

您是否尝试删除联接并仅保留更新表?