我用数据环境设计器+数据报表设计器实现简单的报表,出现的问题是在我打开一个报表再关闭报表后,怎么关闭对数据库的连接?因为我在打开报表后,发现数据库处于锁定状态,我再执行数据库备份操作等都抱错,说没有权限

解决方案 »

  1.   

    我自己胡乱用了
    Private Sub DataReport_Terminate()
    Set DataEnvironment1 = Nothing
    End Sub
    不行!
      

  2.   

    再问个问题,有时候我打开报表时,会弹出,请输入ms jet oledb初始化信息的窗体,
    让输入数据源,用户名,密码,打开方式等,就算我输入了,
    但我随后打开的报表就会包从当前数据源取得行值失败,
    请问是哪的毛病
      

  3.   

    我前两个问题都解决了,就是一个怎么关闭数据库连接,用的是
    Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
    With DataEnvironment1.Connection1
        If .State = adStateOpen Then .Close
    End With
    End Sub
    解决出现请输入ms jet oledb初始化信息的窗体,是加上了
    Private Sub DataEnvironment_Initialize()
    Dim strConn As String
    strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
                      "Data Source=" & App.Path & "\Data\db.mdb;"
    DataEnvironment1.Connection1.ConnectionString = strConn
    End Sub
    但最后个问题还没解决,就是报错:从当前数据源取得行值失败,
    而且是当成功打开一个报表后再打开一个报表就抱这种错误,之后其他报表也出现这种错误
      

  4.   

    不要用这个
    Set DataEnvironment1 = Nothing如果你在后面的处理发现数据库已经打开注意这里:Dim strConn As String
    strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
                      "Data Source=" & App.Path & "\Data\db.mdb;"
    DataEnvironment1.Connection1.ConnectionString = strConn
    当你连接不同的数据库时 , 用完后if DataEnvironment1.Connection1.state = adStateOpen then
        DataEnvironment1.Connection1.close
    endifset DataEnvironment1.Connection1 = nothing
      

  5.   

    楼上的 十分感谢你的回答 但好像说反个,Set DataEnvironment1.Connection1 = Nothing
    编译不通过 
    Set DataEnvironment1 = Nothing却可以