实时错误‘3251’
当前Recordset不支持更新。这可能时提供者的限制的,也可能是选定的锁定类型的限制的。我的语句如下:      rs.Open "select * from T_copyrount where F_productname='" & Trim(Cbo.Text) & "'", cn, 1
           For i = 1 To Grid3.Rows - 1
                rs.AddNew
                rs("F_productname").Value = Trim(Cbo.Text)
                rs("F_thid").Value = Grid3.TextMatrix(i, 1)
                rs("F_picid").Value = Grid3.TextMatrix(i, 2)
                rs.Update
               
           Next i
       rs.Close
数据库连接的字符串已经在类模块中已定义打开,类模块定义为Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset。每次错误都在rs.addnew上。

解决方案 »

  1.   

    Set rs = New ADODB.Recordset
                 rs.CursorLocation = adUseClient  
                 rs.CursorType = adOpenDynamic        
                 rs.LockType = adLockPessimistic  '要有这个值的试试
            rs.Open "select * from T_copyrount where F_productname='" & Trim(Cbo.Text) & "'", cn, 
        rs.movefirst 
        For i = 1 To Grid3.Rows - 1
                    rs.AddNew
                    rs("F_productname").Value = Trim(Cbo.Text)
                    rs("F_thid").Value = Grid3.TextMatrix(i, 1)
                    rs("F_picid").Value = Grid3.TextMatrix(i, 2)
                    rs.Update
                   
               Next i
           rs.Close
      

  2.   

    :      rs.Open "select * from T_copyrount where F_productname='" & Trim(Cbo.Text) & "'", cn, 1中的1是指adLockReadOnly,指示唯讀記錄。您無法更改資料。
    你改成2或3 
      

  3.   

    cn.execute "insert into t_copytcount(f_productname,f_thid,f_picid) values('"& trim(cbo.text) &"','"& grid3.textmatrix(i,1) &"','"& grid3.textmatrix(i,2) &"')
      

  4.   

    加上rs.LockType = adLockPessimistic还是说记录集打开不能操作。还有就是不能用insert语句,因为我在插入字符串时有'单引号,在执行时出现语法错误。