设置表连接属性Access 2010后无法编辑记录集

时间:2013-05-02 10:58:26

标签: ms-access access-vba runtime-error

我添加了一个允许更改表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,其他表中的更改实际上在新数据库中生效。

1 个答案:

答案 0 :(得分:0)

您在ODBC连接字符串中为SQL Server提供的UID是只读UID。您的UID是数据库所有者UID,因此您可以进行编辑。

此外,如果在SQL语句中使用JOIN创建记录集,则几乎总是会阻止编辑记录集。