窗体1 FrmLoginPrivate Sub Form_Load()
If Adodc1.Recordset.RecordCount > 0 Then
......
Else
Unload Me
FrmAddUser.Show
End If
End Sub窗体2 FrmAddUserPrivate Sub Form_Unload(Cancel As Integer)
FrmUser.Adodc1.Refresh
If FrmUser.Adodc1.Recordset.RecordCount > 0 Then
Unload Me
FrmLogin.Show
Else
End
End If
End SubPrivate Sub Command2_Click()
Unload Me
End Sub以上代码其它没有问题,但如果运行到窗体2 FrmAddUser的FrmLogin.Show这里
这时点FrmLogin窗体的关闭我的程序并没有真正结束,请问是怎么回事?谢谢。PS:FrmLogin不能添加Form_Unload的End,因为这是登陆窗口,还要调用别的窗体。

解决方案 »

  1.   

    FrmLogin为登录窗口 如果数据库有用户则输入名称密码关闭自身弹出FrmMain窗口~~~无问题
    FrmLogin为登录窗口 如果数据库无用户则关闭自身弹出FrmAddUser添加用户窗口~~~无问题
    FrmAddUser为添加用户窗口 如果数据库无用户点关闭则关闭自身~~~无问题
    FrmAddUser为添加用户窗口 如果数据库有用户点关闭则关闭自身弹出FrmLogin登录窗口~~~无问题FrmAddUser为添加用户窗口 如果数据库有用户点command2或关闭则关闭自身弹出FrmLogin登录窗口~~~现在点击FrmLogin登录窗口的关闭FrmLogin窗体~窗体是关闭了但我的程序并没有真正结束
      

  2.   

    For i = 0 To Forms.Count - 1
            Unload Forms(i)
        Next i
    试下
      

  3.   

    在FrmLogin窗体的代码中增加如下代码,保证FrmLogin窗体非正常卸载:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Cancel = -1
    End Sub
      

  4.   

    在你真正有权结束整个程序运行的窗口的Form_Unload事件里写下:
    unload FrmLogin 
    unload FrmAddUser
    set frmlogin=nothing
    set frmadduser=nothing
    end
    '不会死不了了吧..
    '呵呵..我XXXX我XXX他一万次...呵呵...
      

  5.   

    出现这个问题的原因应该是这句话:
      FrmUser.Adodc1.Refresh运行到FrmLogin.Show时,由于FrmUser.Adodc1.Refresh这句话,窗体FrmUser被Load了,只是不是可见的但是关闭FrmAddUser时只有FrmAddUser被UnLoad了,FrmUser还在运行,所以 在FrmAddUser的中的 UnLoad Me 后应加上 UnLoad FrmUser或者如 ceagle(do my best!)所说
    加上
       
        For i = 0 To Forms.Count - 1
            Unload Forms(i)
        Next i  
     
      

  6.   

    哥哥,这个问题似乎很简单的阿,不行加俩标志变量阿(全局的)
    若加载了,则置为ture
    卸载则置为False
    卸载时判断标志变量的真假就行了,根据标志变量的真假来执行unload语句
      

  7.   

    Unload Me
    FrmAddUser.Show 的顺序倒一下,先让FrmAddUser.Show 然后unload me下面那个窗口也同理试试看