一个中型的项目全部做完了,当我添加了一个数据备份功能,执行copyfile语句时,系统提示不能执行.
我知道肯定是在程序的其它地方打到数据库和记录集时,忘记关闭了.
我尝试着找是哪没关闭可就是找不到,我该怎么办啊????
我想能不能在数据备份的窗体加个什么语句能将数据库以及里面的记录集关掉,让我能执行那个copyfile语句.现在就要到交项目的时候了,这是我从学校出来的第一份工作,如果交不出来我就玩玩了大家想想办法,救救我吧!

解决方案 »

  1.   

    我现在写了一个很小的程序测试,发现数据集没关闭也不行啊.
    另外,data控件打到的数据库应该不要手工去关闭吧??
      

  2.   

    只需要关闭所有的cnn就可以了!
    Open 和 Close 方法范例
    该范例使用已经打开的 Recordset 和 Connection 对象的 Open 和 Close 方法。Public Sub OpenX()   Dim cnn1 As ADODB.Connection
       Dim rstEmployees As ADODB.Recordset
       Dim strCnn As String
       Dim varDate As Variant   ' 打开连接。
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set cnn1 = New ADODB.Connection
       cnn1.Open strCnn
       
       ' 打开雇员表。
       Set rstEmployees = New ADODB.Recordset
       rstEmployees.CursorType = adOpenKeyset
       rstEmployees.LockType = adLockOptimistic
       rstEmployees.Open "employee", cnn1, , , adCmdTable   ' 将第一个雇员记录的受雇日期赋值给变量,然后更改受雇日期。
       varDate = rstEmployees!hire_date
       Debug.Print "Original data"
       Debug.Print "  Name - Hire Date"
       Debug.Print "  " & rstEmployees!fName & " " & _
          rstEmployees!lName & " - " & rstEmployees!hire_date
       rstEmployees!hire_date = #1/1/1900#
       rstEmployees.Update
       Debug.Print "Changed data"
       Debug.Print "  Name - Hire Date"
       Debug.Print "  " & rstEmployees!fName & " " & _
          rstEmployees!lName & " - " & rstEmployees!hire_date   ' 再查询 Recordset 并重置受雇日期。
       rstEmployees.Requery
       rstEmployees!hire_date = varDate
       rstEmployees.Update
       Debug.Print "Data after reset"
       Debug.Print "  Name - Hire Date"
       Debug.Print "  " & rstEmployees!fName & " " & _
          rstEmployees!lName & " - " & rstEmployees!hire_date   rstEmployees.Close
       cnn1.CloseEnd Sub
      

  3.   

    不行的话,你将数据库的连接关闭,再重新连接!cn.close Set cn=nothing
      

  4.   

    你用的是sqlserver数据库吧,他的文件不可以直接拷贝的,要在企业管理器中分离数据库后才可以拷贝,不建议用这种方法备份sql数据库,你可以用sql语句备份数据库,到时候直接还原就可以了。
      

  5.   

    楼主别啊,千万别自杀啊,特别是服毒!!可以这样处理
    1
    先把所有窗体(和数据有关的)unload,不然可能会发生冲突
    然后当然处理剩下的主窗体了如果不行
    2你的公司在哪,我和弟兄们先过去示威
      

  6.   

    还没有解决,我用的是dao 对象和data控件(代码有相当一部分是另外一个人的,要我改,用这种连接方式,我也没办法)
    你们的意思是只要关闭数据对象,而记录集对象可以不关是吗?
    数据库是Access.
      

  7.   

    我永远爱csdn
    现在结帐!!!!!!!!!!!!!
      

  8.   

    楼主不该轻言生死,呵呵,多上csdn就好了