我也提一点意见,你的密码限制不起作用,当密码错误输入三次后,不显示“由于多次输入错误,系统将自动关闭,请联系管理员!”这句话,主要是由于count 设置为局部变量,把它改成全局变量就好了
请修改frm_Landing中的一个BUG,当你注册的用户多于一个的时候,输入数据库中的用户名中的任何一个,密码中的任何一个都能登录该系统。因为你登录时检验的用户名和密码不是一致的.
举个例子来说 :我注册了用户名:sugar,密码:555.当我登录时,用户名输入admin,密码输入555时也可以登录。
更改frm_Landing中的cmdOK单击事件程序代码如下:
Private Sub cmdOK_Click()
Dim Encode As String
Dim txtSQL As String
Dim mrc As ADODB.Recordset
If Len(txtUserName) = 0 Then '判断输入是否为空
MsgBox "请输入用户名!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtUserName.SetFocus
ElseIf Len(txtPWD) = 0 Then
MsgBox "请输入密码!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtPWD.SetFocus
Else
txtSQL = "select * from Tbl_Users where 用户名 = '" & Trim(txtUserName.Text) & "'" '检验输入用户名是否存在
Set mrc = ExecuteSQL(txtSQL)
If mrc.RecordCount = 0 Then
MsgBox "该用户名不存在,请重新输入!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtUserName.SetFocus
mrc.Close
Exit Sub
Else
Encode = EncodePassWord(Trim(txtPWD.Text)) '调用加密函数
If mrc.Fields(1) <> Encode Then
MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, "电子通讯录--提示"
TryTime = TryTime + 1
txtUserName.Text = ""
txtPWD.Text = ""
txtUserName.SetFocus
If TryTime = 3 Then
MsgBox "由于多次输入错误,系统将自动关闭,请联系管理员!", vbOKOnly + vbInformation, "电子通讯录--注意"
End
End If
Else
'全部检验正确,进入主窗体
UserName = txtUserName.Text
Unload Me
frmMain.Show
End If
End If
End If
End Sub