可以用错误处理功能
On Error Goto www
     adocon.Close
     msgbox "说明是正常关闭的"
     Exit Sub
www:
     msgbox "不正常关闭(数据库没有打开)"

解决方案 »

  1.   

    对不起你说的问题是DAO的而我回答的是ADO的。
    但是原理是一样的。
      

  2.   

            If mRs.State = adStateOpen Then mRs.Close
      

  3.   

    是RecordSet對象的屬性嗎﹖
    我怎麼試了沒有這個屬性呀﹖﹖﹖
      

  4.   

    村长哪,他们说的是ADO,而你古董的非用DAO.
      

  5.   

    不是我古董,是头要求用dao呀!苦命!
      

  6.   

    干脆不用关闭了,程序退出就数据库对象自然就关闭了。
    我原来应用DAO的时候就是没有关闭DAO而是从程序一开始就一直开着,程序退出就完了!
      

  7.   

    if rs.state = 1 then 
       rs.close
    end if
      

  8.   

    我的RecordSet没有state属性呀!
    而且再说如果rs到时候已经关闭了的话。那这个方法也访问不到了呀而我的目的是判断rs/db关没关掉,可能这种方法不太适合吧btw:我用err.number捕获了一个91错,不知道他准不准确,能不能用来判断?
    程序例:
        intTemp = recRecordset.RecordCount
        
        If Err.Number = 0 Then
            recRecordset.Close
            Set recRecordset = Nothing
        End If
    就是说访问Recordcount属性的时候,如果err.number=0,就说明recrecordset没有被关闭,这去关闭它;而如果访问recordcount属性的时候recRecordset出错了,则说明recRecordset已经被关闭, err.number就会不是0(是91),就什么都不做!!不知道这种方法可靠不可靠