各位大虾,我做了一个小的MIS(ACCESS数据库),程序运行后点击主窗体界面右上角的“关闭”按钮,或者是在主窗体界面的下拉式菜单中“退出”菜单(我给这个菜单选项对应的Click事件是Unload Me),可是两种方式主窗体界面关闭了,但是VB平台却还在程序运行状态中,请问是怎么回事,如何解决,多谢大家!

解决方案 »

  1.   

    是不是有窗体From1.Hide了,还要先断开与数据库的连接在Unload主窗体,用end也可以。
      

  2.   

    '窗体关闭
    private sub form_unload()
       end
    end sub
    '按钮关闭
    private sub button_click()
       unload me
    end sub
      

  3.   

    当VB程序结束的时候, 这个窗体的所有内容都关闭并从内存中移除 .但是VB 不会自动完成这个工作; 因此, 如果你的程序包含多个窗口, 那么当程序终止的时候一个或者多个窗口还会保留在内存中,这种情况很有可能存在。 
       调用一个窗体的隐藏方法或者设置它的可见属性来欺骗是不能关闭的。甚至如果你明确的关闭一个窗体,它将会占据一定的资源,除非这个窗体的参数没有设置。这个技巧告诉我们如何确定一个关闭程序的所有内容并且它们的资源释放将在程序结束的时候完成。   现在,我们来看看下面的例子,可以发现一些问题:Dim f As Form
    For Each f In Forms
      Unload f
      Set f = Nothing
    Next f 问题是,如果你在进程中执行这个代码,它将可以正确的工作,但是如果你从主窗口调用,它将试图关闭主窗口,这个主窗口已经在自己的关闭中运行。这里告诉你如何发现这个潜在问题:Public Sub UnloadAllForms(Optional FormToIgnore _
      As String = "")  Dim f As Form
      For Each f In Forms
        If f.Name <> FormToIgnore Then
          Unload f
          Set f = Nothing
        End If
      Next f
        
    End Sub 在这个位置使用这个进程, 你可以这样调用它:UnloadAllForms Me.Name 现在可以关闭所有的窗口除了主窗口。如果从一个分隔的程序中调用, 不要遍历参数, 进程将会关闭程序窗口中的所有内容。
      

  4.   

    补充一下!如果!要是你要做弹出对话框的关闭可以这么做呀!
    private sub form_unload(canel as integer)
    If MsgBox("是否要退出!", vbYesNo) = vbNo Then
        Cancel = 1
    End If
    End Sub
      

  5.   

    关闭数据库连接,释放引用,使用END
      

  6.   

    关闭数据库连接,释放引用,使用END