一、逻辑结构图
敲代码之前一定要有逻辑,去捋顺要敲代码的逻辑顺序,把代码敲出来,软件运行的过程你知道么?其实敲机房登录,和学生登录一样,没啥区别,但要区分一般用户操作员和管理员的权限,在这个阶段我们能学到的就是要理清代码和应用的逻辑设计,我们都知道登录不过就是输入用户和密码就进入主窗体么,其实它的内部顺序是这样的,如下图:
二、过程代码
Private Sub cmdOK_Click()
Dim txtSQL As String
Dim txtSQL1 As String
Dim mrc As ADODB.Recordset '验证用户和用户级别
Dim mrc1 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 userID= '" & Trim(txtUserName.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, msgText)
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
txtUserName.Text = ""
Else
'判断用户级别
If Trim(mrc.Fields(2)) = Trim("一般用户") Then '一般用户的权限
If Trim(mrc.Fields(1)) = Trim(txtPwd.Text) Then '判断密码是否正确
txtSQL1 = "select*from OnWork_Info" '获取正在上机的表
Set mrc1 = ExecuteSQL(txtSQL1, msgText)
Me.Hide
UserName = Trim(txtUserName.Text) '将用户名给username
frmMain.Show
frmMain.GeneralUser.Enabled = True
frmMain.Operator.Enabled = False
frmMain.Administrator.Enabled = False
mrc1.AddNew '添加更新到正在上机表里
mrc1.Fields(0) = Trim(UserName)
mrc1.Fields(1) = Trim(mrc.Fields(2))
mrc1.Fields(2) = Trim(Date)
mrc1.Fields(3) = Trim(Time)
mrc1.Fields(4) = VBA.Environ("computername")
mrc1.Update
mrc1.Close
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPwd.SetFocus
txtPwd.Text = ""
End If
End If
If Trim(mrc.Fields(2)) = Trim("操作员") Then '操作员的权限
If Trim(mrc.Fields(1)) = Trim(txtPwd.Text) Then '判断密码是否正确
txtSQL1 = "select*from OnWork_Info" '获取正在上机的表
Set mrc1 = ExecuteSQL(txtSQL1, msgText)
Me.Hide
UserName = Trim(txtUserName.Text) '将用户名给username
frmMain.Show
frmMain.GeneralUser.Enabled = True
frmMain.Operator.Enabled = True
frmMain.Administrator.Enabled = False
mrc1.AddNew '添加更新到正在上机表里
mrc1.Fields(0) = Trim(UserName)
mrc1.Fields(1) = Trim(mrc.Fields(2))
mrc1.Fields(2) = Trim(Date)
mrc1.Fields(3) = Trim(Time)
mrc1.Fields(4) = VBA.Environ("computername")
mrc1.Update
mrc1.Close
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPwd.SetFocus
txtPwd.Text = ""
End If
End If
If Trim(mrc.Fields(2)) = Trim("管理员") Then '管理员的权限
If Trim(mrc.Fields(1)) = Trim(txtPwd.Text) Then '判断密码是否正确
txtSQL1 = "select*from OnWork_Info" '获取正在上机的表
Set mrc1 = ExecuteSQL(txtSQL1, msgText)
Me.Hide
UserName = Trim(txtUserName.Text) '将用户名给username
frmMain.Show
frmMain.GeneralUser.Enabled = True
frmMain.Operator.Enabled = True
frmMain.Administrator.Enabled = True
mrc1.AddNew '添加更新到正在上机表里
mrc1.Fields(0) = Trim(UserName)
mrc1.Fields(1) = Trim(mrc.Fields(2))
mrc1.Fields(2) = Trim(Date)
mrc1.Fields(3) = Trim(Time)
mrc1.Fields(4) = VBA.Environ("computername")
mrc1.Update
mrc1.Close
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPwd.SetFocus
txtPwd.Text = ""
End If
End If
End If
ok = True
End If
miCount = miCount + 1
If miCount > 2 Then
MsgBox "你已经超过允许验证次数!", vbOKOnly + vbExclamation, "提示"
Unload Me
End If
Exit Sub
End Sub
大体上就是这些,登录其实很简单,我在这过程中并没有遇到太大的问题,具体问题具体解决,其实很多知识在敲学生的时候没有弄懂,反而在敲机房的时候懂了,其实知识的学习就是这样,一遍遍的学习,一步步的碾压过来的,大家加油!