在Form的Load事件中,将txtuser设置为焦点,初始化loginno。
Private Sub Form_Load()
loginno = 0
Me.Show
txtuser.SetFocus
End Sub
这里将“确定”和“取消”两个按钮作为一个按钮数组cmdOkCancel:确定按钮的index属性为0,取消按钮的index属性为1。
利用SQL语句,在数据库中查询,如果查到相应的记录,则调用Case 0事件,用户的登陆获得通过,此时可以退出登陆窗口,并进入MDI主窗口,同时将用户类型和用户名分别传递到MDI主窗口和frmmanage中;如果没有相应的记录,则给出提示错误信息,同时将用户输入错误密码次数增加1,如果错误超过3次,则退出整个系统;若次数还没有超过3次,则提示用户重新输入。
根据以上的设计,cmdOkCancel的Click事件的代码如下:
Private Sub cmdOkCancel_Click(Index As Integer)
Select Case Index
Case 0
……
Userid = Trim(txtuser.Text)
Userpwd = MD5(Trim(txtPassword.Text))
sqlstr = "select * from UserInfo where UserID='" & Userid & "'"
rs.Open sqlstr, con, 1, 1
If Not rs.EOF Then
If rs("UserPWD") <> Userpwd Then
'密码错误时
MsgBox "您输入的密码不正确!", vbQuestion
Me.Caption = "请输入用户名和密码:"
loginno = loginno + 1
'当错误的密码次数达到3次时,不能登陆,退出!
If loginno = 3 Then
MsgBox "对不起,您不能使用该系统!请与管理员联系。", vbInformation
Unload Me
Exit Sub
End If
……
Else
LoginUser = Userid '保存当前登陆用户名
LoginPower = rs.Fields(3)
'将当前登陆用户的权限保存到LoginPower中
Unload Me
frmflash.Show
End If
Else
MsgBox "没有您输入的用户名!", 32
……
End If
rs.Close: Set rs = Nothing
Case 1
‘退出整个程序
Unload Me
End Select
End Sub
3.3.2 MDI主窗口(frmmain)
本系统采取多文档界面(MultiDocument Interface)。多文档界面是一种Windows用户界面标准。它有一个父窗口,在典型情况下,父窗口用来显示程序菜单以及包含子窗口。
在工程中添加一个MDI窗口,取名为“frmmain.frm”,并为MDI窗体进行菜单和代码的设计,其运行界面如图3.2:
图3.2 主界面
3.3.2.1 菜单设计
MDI主窗体是整个系统的容器,为了方便用户的使用,应设计相应的菜单和代码。
3.3.2.2 窗体代码设计
1.在代码窗口的通用部分,声明一个API函数用于打开帮助文件和调用Outlook发送邮件。
Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
2.判断用户权限
如果登陆的为普通用户类型的用户,则用户不能使用“用户管理”这一功能,而对于管理员类型的用户,则没有此限制。所以在MDIForm的Load事件中需要判断用户类型。
Private Sub MDIForm_Load()
StatusBar.Panels(2).Text = "当前操作员:"
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>