实时错误‘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.   

    那是你没有设置锁定类型所致,加上这句rs.LockType =adLockOptimistic就可以了
      

  2.   

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

  3.   

    因为不能用insert ,因为插入的字符串有'单引号,如果插入单引号后就会出现语法错误。我就是怕出现这种错误才用addnew方法的。
      

  4.   

    怀疑是你的CursorType属性的问题啊!
    将CursorType设为3试试!
    rs.Open "select * from T_copyrount where F_productname='" & Trim(Cbo.Text) & "'", cn, 3(adOpenDynamic)
      

  5.   

    或者是你的LockType出了问题!不要使用默认值更换为3试试!
      

  6.   

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

  7.   

    碰到单引号时再加一个单引号就可以了
    replace(text1.text,"'","''")
      

  8.   

    我用Addnew 时说插入类型错误?他对类型有限制吗?数字可以吗?
      

  9.   

    用insert 语句时如果字符串中有单引号,将其改为双引号即可。
    或用rs.open sql,cn,1,3试试