同一用户的两种登录方式
之前做的登录窗口之能用卡号登录,如果忘记了卡号怎么办?经过比较权衡,最终决定让用户用两个号码等录,就是说用卡号也能登录用学生的学号也可以登录。这样就方便很多了。根据这个思想对登录窗口做了如下的改动,完整代码如下所示:(可以比较之前所写的博客)
Option Explicit
Public ok As Boolean
'记录确定次数
Dim micount As Integer
Private Declare Function GetUserName Lib"advapi32.dll" Alias "GetUserNameA" (ByVal Lpbuffer AsString, Nsize As Long) As Long
Private Sub Command1_Click()
'用来存放SQL 语句
Dim txtSQL As String
Dim mrc As ADODB.Recordset
'用来存放记录集对象
Dim msgtext As String
'查询指定用户名的记录
txtSQL = "select*from user_info"
'执行查询语句
Set mrc = ExecuteSQL(txtSQL, msgtext)
username = ""
'判断输入用户名是否为空
If mrc.EOF Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly +vbExclamation, "警告"
Text1.SetFocus
Else
While (mrc.EOF = False)
If Trim(Text1.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly +vbExclamation, "警告"
Text1.SetFocus
'判断输入的用户名是否是已经注册的用户名卡号
ElseIf Trim(Text1.Text) = Trim(mrc.Fields(0)) Then
'判断密码是否正确
If Trim(mrc.Fields(1)) =Trim(Text2.Text) Then
ok = True
username = Trim(mrc.Fields(0))
mrc.Close
Me.Hide
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text2.SetFocus
End If
Exit Sub
'判断输入的用户名是否是已注册学生学号
ElseIf Trim(Text1.Text) = Trim(mrc.Fields(5)) Then
'判断密码是否正确
If Trim(mrc.Fields(1)) =Trim(Text2.Text) Then
ok = True
username = Trim(mrc.Fields(0))
mrc.Close
Me.Hide
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text2.SetFocus
End If
Exit Sub
Else
'数据库中游标移动到下一个数据行
mrc.MoveNext
End If
'返回while从头运行此段程序
Wend
'记载输入密码次数
micount = micount + 1
If micount = 3 Then
MsgBox "输入错误已到3次,请检查后再登陆!", vbOKOnly + vbExclamation,"警告"
End
End If
Exit Sub
End If
End Sub
Private Sub Command2_Click()
ok= False
Me.Hide
End Sub
Private Sub Form_Load()
Dim Sbuffer As String
Dim Lsize As Long
Sbuffer = Space$(255)
Lsize = Len(Sbuffer)
Call GetUserName(Sbuffer, Lsize) '防止存在上一次输入的用户名
If Lsize > 0 Then
Text1.Text = ""
Else
Text1.Text = vbNullString
End If
ok = False
micount = 0
End Sub