【问题标题】:Edit a Sharepoint List with Access VBA使用 Access VBA 编辑共享点列表
【发布时间】:2020-06-13 01:56:06
【问题描述】:

我创建了一个 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 似乎只能读取。 有什么想法吗?

提前致谢。

【问题讨论】:

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

标签: vba ms-access sharepoint sharepoint-list


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多