楼上说得对头。对query_unload编程是最好的解决办法

解决方案 »

  1.   

    检查forms集合。该集合中是否含有你要判断的窗体。
    dim x as form
    for each x in forms
        if x.name ="XXX"then ……
    next
      

  2.   

    3X,但我是想在关闭主程序前关闭所有打开的子窗口,我现在用unload或end命令不能实现:关闭主窗口时(点击窗口右上角的关闭按钮时),同时关闭子窗口。
      

  3.   

    在主窗体的unload  事件中写
    Private Sub Form_Unload(Cancel As Integer)
        Dim x as form
        for each x in forms
           unload x
        next 
    End Sub
    不行吗?
      

  4.   

    '卸载所有窗体(除一个窗体之外,一般为主窗体)
    Public Function sfFormsUnload(ByRef frm As Variant) As String
        Dim i As Integer
        For i = Forms.Count - 1 To 0 Step -1
            If UCase$(Forms(i).Name) <> UCase$(frm.Name) Then
                Unload Forms(i)
            End If
        Next
        sfFormsUnload = ""
    End Function
      

  5.   

    楼上的办法好!
    我有一个笨办法,用全局变量,打开窗体时为真。unload时,判断全局变量是否为真
      

  6.   

    用submain启动,在frmmain卸载后,判断。