我创建了一个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似乎只能读取。 有什么想法吗?
谢谢。
答案 0 :(得分: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语句代码的字符串。
希望这对其他人有帮助。