我添加了一个允许更改表Connect属性的屏幕,以便用户可以更改数据库。
这是我改变的值:
ODBC;Description=####;DRIVER=SQL Server;SERVER=SERVER2008\MSSQLSERVER2008;UID=####
;PWD=####;APP=Microsoft Office 2010;DATABASE=####
这样做之后,这段代码:
With Me.Child5.Form.Recordset 'linked tabled
.MoveFirst
Do While Not .EOF
.Edit
!Allow = False
!ReadOnly = False
.Update
.MoveNext
Loop
End With
引发“错误'3027':无法更新。数据库或对象是只读的。”
我应该说在更改Connect属性之前,对于这段代码,一切正常。此外,即使更改了Connect属性,更改了与其他表绑定的其他表单中的信息,更改也会生效,不会引发错误,因此数据库显然不是只读的。
有什么想法吗?感谢
编辑:我在设置RefreshLink
后也调用Connect
,其他表中的更改实际上在新数据库中生效。
答案 0 :(得分:0)
您在ODBC连接字符串中为SQL Server提供的UID是只读UID。您的UID是数据库所有者UID,因此您可以进行编辑。
此外,如果在SQL语句中使用JOIN创建记录集,则几乎总是会阻止编辑记录集。