我的excel用户表单在我下次加载时变得没有响应
问题描述:
我有两种形式,一种登录表单来验证用户进入系统和一个主要表单,如果验证成功的话。我使用访问数据库来搜索有效用户,并在主窗体中填充列表。我的excel用户表单在我下次加载时变得没有响应
这里是该代码:
Private Sub CancelCommandButton_Click()
CloseDatabase
Unload Me
End Sub
Private Sub ConfirmCommandButton_Click()
...
End Sub
Private Sub UserForm_Initialize()
ConnectDatabase
End Sub
Private Sub OpenMainForm()
Unload Me
MainForm.Show
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub
这里是管理的主要形式加载并关闭代码:
Public Sub UpdateControls()
PopulateUserList
End Sub
Private Sub UserForm_Activate()
sTag = Split(Me.Tag, "|")
If sTag(0) <> "1" Then
Me.MainFormMultiPage.Pages(0).Enabled = False
Me.MainFormMultiPage.Value = 1
Else
Me.MainFormMultiPage.Pages(0).Enabled = True
Me.MainFormMultiPage.Value = 0
UpdateControls
End If
UserLabel1.Caption = sTag(1)
UserLabel2.Caption = sTag(1)
UserLabel3.Caption = sTag(1)
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
' Tip: If you want to prevent closing UserForm by Close (×) button in the right-top corner of the UserForm, just uncomment the following line:
' Cancel = True
Dim answer As Integer
answer = MsgBox("ÂíÇ ãØãÆäíÏ ˜å ãí ÎæÇåíÏ ÇÒ ÓÇãÇäå ÎÇÑÌ ÔæíÏ¿", vbYesNo + vbQuestion, "ÎÑæÌ ÇÒ ÓÇãÇäå")
If answer = vbYes Then
CloseDatabase
Else
Cancel = True
End If
End If
End Sub
Private Sub UserForm_Terminate()
loginForm.Show
End Sub
当我关闭主窗体通过点击'X'按钮,登录窗体重新出现,主窗体关闭;但是,当我再次登录(最好使用相同的凭据)显示的主要形式,但完全没有反应(没有列表的人口,“X”按钮不起作用或表单中任何其他控件)。
我该怎么办? UserForm_CloseQuery()中的代码是否卸载主窗体及其所有宏,并且无法将所需事件恢复到功能或者我错过了什么?
这不是一个时间,我开始编写VBA,当遇到新问题我不能轻易利用它的头部或尾部。任何帮助,将不胜感激。由于
答
假设你的形式是模态,登录表单代码更改为:
Private Sub OpenMainForm()
Me.Hide
MainForm.Show
Me.Show
End Sub
,并从主窗体中删除Userform_Terminate
代码。这将意味着登录表单在主窗体关闭时自动显示。
非常感谢Rory,其实我有一个错误,需要一点改变,我也改变了登录表单初始化事件来激活,现在它工作得很好。 –