程序出错了:run-time error 2147217893(80040e1b)
identity cannot be determined for newly inserted rows操作如下时程序出错:
1、打开一个结果集
Rstest.Open "SELECT top 1 DeptCode, DeptName, DeptMaster FROM TsysDept", Cn, adOpenKeyset, adLockPessimistic
2、在一个按钮事件中新增一条记录
Private Sub Command1_Click()
    Rstest.AddNew
    Rstest.Fields("DeptCode").Value = "999999"
    Rstest.Fields("deptname").Value = "财务课9"
    Rstest.Update
End Sub
3、马上按另一个按钮修改当前记录,就报错:
Private Sub Command2_Click()
    Rstest.Fields("deptname").Value = "财务课4"
    Rstest.Update
End Sub

解决方案 »

  1.   

    我在机器上调试过,没有报你那样的错误,我把记录机定义成全局变量的。在修改操作的时候,把所有的deptname都改变了,在这里,我们要把记录定义到指定的行上,如
    Private Sub Command2_Click()
        Dim rs As New ADODB.Recordset
        rs.Open "SELECT top 1 DeptCode, DeptName, DeptMaster FROM test", cn, adOpenKeyset, adLockPessimistic    rs.Fields("deptname").Value = "财务课5"
        rs.Update
        MsgBox "ok"
    End Sub
    这样就只修改第一行的数据