Ms access 运行时错误:3027数据库或对象为只读

Ms access 运行时错误:3027数据库或对象为只读,ms-access,Ms Access,我正在对一个表进行一个简单的状态更新,并向现有字段追加一个字符串。从SQL语句中找到特定记录后,编码是对一个表中的“StatusNumber”字段执行更新,而另一个表中的“StatusComments”字段则是插入新的注释,并在现有注释后添加日期 Sub VATApprovalAttempt() Dim db As dao.Database Dim rs As dao.Recordset Dim emailTo As String Dim em

我正在对一个表进行一个简单的状态更新,并向现有字段追加一个字符串。从SQL语句中找到特定记录后,编码是对一个表中的“StatusNumber”字段执行更新,而另一个表中的“StatusComments”字段则是插入新的注释,并在现有注释后添加日期

Sub VATApprovalAttempt()
    
    Dim db As dao.Database
    Dim rs As dao.Recordset
    
    Dim emailTo As String
    Dim emailSubject As String
    Dim emailText As String
    Dim UPDATE As String
            
            If rs.Fields("StatusNumber").Value = 12 Then
                     rs.Edit
                     rs.Fields("StatusNumber").Value = 4
                     rs.UPDATE
                     
                End If

                If Not IsNull(rs.Fields("StatusComments").Value) Then
                    rs.Edit
                    rs.Fields("StatusComments").Value = rs.Fields("StatusComments").Value & Date & " - VAT Rep’s endorsed & Product request box received"
                    rs.UPDATE

                End If

3027错误与:rs一致。两个IF语句的编辑。知道为什么它认为这是只读对象吗?我在其他数据库中也做过类似的程序,但这一个似乎造成了麻烦。

我们是否缺少设置rs值的代码? 你需要像这样的东西:

Set rs=Currentdb.OpenRecordset(“TableName”,dbOpenDynaset)

在编辑rst之前。我假设您一定是在某个地方执行此操作,否则会出现“Object variable not set”类型错误。请注意,我指的是“Currentdb”,而不是上面的db变量,因为这也需要进行设置


我有一个类似的问题,不过几天前更新的东西还不错,所以如果我发现有用的东西,我会回来。

最好将每个注释作为自己的记录保存在相关的依赖表中。不显示设置和打开记录集对象的代码。为什么将UPDATE声明为字符串变量?更新是记录集对象的固有方法。这是否回答了您的问题。也回顾