if rs.state = adStateOpen then rs.close

解决方案 »

  1.   

    这样做,应该可以:
    private sub cmddel_click()
       
       dim rstmp as new adodb.recordset
         
       rstmp.open "select * from student where .... ",cnn,3,2
       rstmp.delete
       rstmp.close  ' 如果rs指向当前要删除的记录,则下移
       if rs.field("姓名")= txtname and 地址..  and  年龄... then     
          rs.movenext
          if rs.eof then
             rs.movelast
          end if
       end ifend sub
      

  2.   

    你的程序有几个问题
    1、在程序控制中不建议使用On Error Resume Next,而应跳转到最后得到出错原因
    2、删除记录时一般不根据多个条件如用户名、年龄等等,最好以主键即ID号为条件进行删除操作,你可以在窗口中添加可见属性为False的文本框等以记录对应的数据ID号
    3、添加、删除等操作都可用Conn连接对象执行,不一定要用Recordset对象操作
      

  3.   

    你的程序可以实现的,把On Error Resume Next 改为 On Error GoTo 关键字
    记录集Rs,Open过后要在次Open之前要关闭先。
      

  4.   

    先查询出需要的数据,然后
    rs.delete
    rs.update
    既可