Public Sub openDatabaseo cnn. Open provider=Microsoft Jet OLEDB 4.0; Data Source="& App Path&library. mdb; Persist Security Info=False 打开与数据库的连接 End Sub (2)在 frmLogin窗体模块中,处理Form的Load 事件。在该事件响应中,初始化 cloUser Type的内 容,代码如下: Private Sub Form Load o Call openDatabase cboUserType. Clear cboUserType. AddItem"管理员",0 cboUserType. AddItem"图书馆工作人员",1 cboUserType. AddItem"借阅者",2 cboUserType. ListIndex=0 txtUser, Text txtPwd. text= End Sub (3)在 frmLogin窗体中,处理 cmdOK的 Click事 件。在该事件响应中,验证用户所输入的用户名、 口令和身份是否匹配。代码如下: Private Sub cmdOK Click If Trim(txtUser. Text=Or Trim(txtPwd Text Then MsgBox”请先输入用户名及其密码!", inFormation,"注意
Public Sub openDatabase() cnn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ App.Path & "\library.mdb;Persist Security Info=False" '打开与数据库的连接 End Sub (2)在 frmLogin 窗体模块中,处理 Form 的Load 事件。在该事件响应中,初始化 cboUserType 的内 容,代码如下: Private Sub Form_Load() Call openDatabase cboUserType.Clear cboUserType.AddItem "管理员", 0 cboUserType.AddItem "图书馆工作人员", 1 cboUserType.AddItem "借阅者", 2 cboUserType.ListIndex = 0 txtUser.Text = "" txtPwd.Text = "" End Sub (3)在 frmLogin 窗体中,处理 cmdOK 的 Click 事 件。在该事件响应中,验证用户所输入的用户名、 口令和身份是否匹配。代码如下: Private Sub cmdOK_Click() If Trim(txtUser.Text) = "" Or Trim(txtPwd.Text) = "" Then MsgBox "请先输入用户名及其密码!", vbInformation, "注意
Exit sub End if 取得用户类型和用户名,保存在标准模块皿bas的全局变量 Type和 g userName中 g_ Usertype cboUserType. ListIndex g userName= txtUser. Text 根据用户名及密码在数据库中搜索 Dim rs1 as New AdodB. recordset rsl. Open"select from Users where UserName=& Trim(txtUser. Text)&and userpassword=/& Trim(txtPwd. Text)& serlypess & g Usertype cnn, adOpenDynamic, adLockOptimistic 用户名密码错误次数,超过3次,则退出系统 Static count as integer Ifrs1. EOF Then’登录失败 MsgBox”对不起,无此用户或者密码不正确或者用户类型不正确! 请重新输入!", information,"错误" txtUser SetFocus count= count 1 If count >=3 Then Msgbox"您无权操作本系统!再见!", acRitical,"无权限 Unload Me 关闭数据库连接 cnn. Close End if Else’登录成功 Ms8Box"登录成功!欢迎使用本系统!", inFormation,"欢迎 Unload Me MDIForm1 show End if End sub
Exit Sub End If '取得 用户 类型 和用户 名, 保存 在标准 模块 m.bas 的 全局 变量 'g_userType 和 g_userName 中 g_Usertype = cboUserType.ListIndex g_userName = txtUser.Text '根据用户名及密码在数据库中搜索 Dim rs1 As New ADODB.Recordset rs1.Open "select * from Users where UserName='" & _ Trim(txtUser.Text) & "' and userpassword='" & _ Trim(txtPwd.Text) & "' and UserType=" & _ g_Usertype, cnn, adOpenDynamic, adLockOptimistic '用户名密码错误次数,超过 3 次,则退出系统 Static count As Integer If rs1.EOF Then '登录失败 MsgBox "对不起,无此用户或者密码不正确或者用户类型不正确!_ 请重新输入!", vbInformation, "错误" txtUser.SetFocus count = count + 1 If count >= 3 Then MsgBox "您无权操作本系统!再见!", vbCritical, "无权限" Unload Me '关闭数据库连接 cnn.Close End If Else '登录成功 MsgBox "登录成功!欢迎使用本系统!", vbInformation, "欢迎" Unload Me MDIForm1.Show End If End Sub