我一般是这么做的:
If rs.State = 1 Then rs.Close

解决方案 »

  1.   

    如果不返回记录集,就可以不用recordset对象
    Set cn_s1 = New ADODB.Connection cn_s1.Open "Provider=MSDAORA.1;
          Password=*;
          user id= ** ;
          Data Source = ***;" strsql = "delete from *** where carton_no=’13’
    cn_sl.execute strsql
      

  2.   

    同意of123() 
    因为当你的记录集对象rs为空时,用close方法就会产生错误!
    因为你可能del是最后一条记录
    要是你想用rs的话可以用shepherd228(牧羊人)的方法!
    也可以不用rs.close
    因为在这个模块结束后系统会将rs的占的内存空间还给你的!
      

  3.   

    同意楼上,
    记录集一般用于返回记录,所以除了,select语句都可以不要用记录集打开了,
    如果你用close方法错误,很可能就是,它已经关闭了
      

  4.   

    用cn_sl.execute "delete from *** where carton_no='13'"
    试试
      

  5.   

    rs为空,你可用:
    Set rs = Nothing
    关了rs又不会出错