Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
'该类的共有成员
Public Ok As Boolean
'定义miCount来记录确定次数
Dim miCount As Integer
'获取计算机用户名重点内容
Private Sub Form_Load()
Dim sBuffer As String '缓冲器
Dim lsize As Long
'给sBuffer预留255字节“Byte”的空间是起缓冲的作用
sBuffer = Space$(255) '为用户名设置空间,255个空字符串
lsize = Len(sBuffer) '为用户名设置长度,sBuffer空格字符串的长度
Call GetUserName(sBuffer, lsize) '读取用户名到sBuffer中
If lsize > 0 Then
txtUserName.Text = ""
Else
txtUserName.Text = vbNullString '表示为空,没有东西。没有任何字符vbNullString=Chr(0)
End If
Ok = False
miCount = 0
End Sub
'单击确定按钮事件
Private Sub cmdOK_Click()
'用来存放SQL语句
Dim txtSQL As String
'用来存放记录集对象
Dim mrc As ADODB.Recordset
'用来存放返回信息
Dim MsgText As String
UserName = "" '先让用户名为空
'判断输入用户名是否为空
If Trim(txtUserName.Text = "") Then
MsgBox "用户名为空,请输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else '不为空的话,调出数据库找出输入的用户名相对应的那一行
'查询指定用户名的记录
txtSQL = "select * from user_info where user_ID = '" & txtUserName.Text & "'"
'执行查询语句
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then '如果游标到达最后一行没有找到数据的话。那么就弹出下边对话框。
MsgBox "用户名输入不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
txtUserName.Text = ""
Else '如果用户名输对了,那么就需要验证密码是否正确了
'判断输入密码是否正确
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
Ok = True 'true正常登陆,false就退出程序
mrc.Close '全对了,就关闭数据库
Me.Hide '隐藏窗体
UserName = Trim(txtUserName.Text) '把Username指定值为当前用户输入的值
Else '密码为空的话,在Msgbox显示如下内容
If Trim(txtPassword.Text = "") Then
MsgBox "密码为空,请输入密码!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
Else
'查询指定用户名的记录
txtSQL = "select * from user_info where user_PWD = '" & txtPassword.Text & "’"
'执行查询语句
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
Else
'判断输入密码是否正确
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
Ok = True 'true正常登陆,false就退出程序
mrc.Close '全对了,就关闭数据库
Me.Hide '隐藏窗体
UserName = Trim(txtPassword.Text) '把Username指定值为当前用户输入的值
End If
End If
End If
End If
End If
End If
'记载输入密码次数
miCount = miCount + 1
If miCount = 3 Then
MsgBox "您已经超过允许验证次数,系统将退出!", vbOKOnly + vbExclamation, "警告"
Unload Me
End If
Exit Sub
End Sub
'单击取消按钮事件
Private Sub cmdCanel_Click()
If MsgBox("是否退出程序? ", vbOKCancel, "请选择") = vbOK Then
Unload Me
End If
End Sub