第一次机房上机系统--登陆和身份验证

考虑到第一次机房上机系统一次打开系统,只能登陆三次,当然每次提示的内容是不一样的。并且根据不同的身份,会出现不同权限。

我的想法是在登陆窗体进行登陆和登陆次数的验证,在主窗体中判断身份,进行权限的判断。

登陆

注意:登陆窗体的代码

Private Sub cmdOK_Click()
    '判断用户名是否为空
    MiCount = MiCount + 1
    UserName = Trim(txtID.Text)
    
    '判断登录名不能为空
    If Not Texttxt(txtID.Text) Then
        Select Case MiCount
            Case Is = 1
                MsgBox "用户名不能为空!" & vbCr & "您还有两次次机会!", vbOKOnly + vbExclamation, "警告"
            Case Is = 2
                MsgBox "用户名不能为空!" & vbCr & "您还有一次次机会!", vbOKOnly + vbExclamation, "警告"
            Case Is = 3
                MsgBox "用户名不能为空!", vbOKOnly + vbExclamation, "警告"
                 
                End
        End Select
        Exit Sub
        txtUserName.SetFocus
    Else
        '连接数据库
        txtSQL = "select *from user_Info where userID='" & txtID.Text & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        '判断是否有该用户
        If mrc.EOF And mrc.BOF Then
           ' MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"
            Select Case MiCount
                Case Is = 1
                    MsgBox "没有这个用户,请重新输入!" & vbCr & "您还有两次次机会!", vbOKOnly + vbExclamation, "警告"
                Case Is = 2
                    MsgBox "没有这个用户,请重新输入!" & vbCr & "您还有一次次机会!", vbOKOnly + vbExclamation, "警告"
                Case Is = 3
                    MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"
                    End
            End Select
            txtID.Text = ""
            txtPassword.Text = ""
            txtID.SetFocus
        Else
            '如果有,判断密码是否正确
            If Trim(txtPassword.Text) = Trim(mrc.Fields(1)) Then
                '进入系统
                FrmMain.Show
                Exit Sub
            Else
                '密码错误,给予提示
                txtPassword.Text = ""
                txtPassword.Text = ""
                txtPassword.SetFocus
                Select Case MiCount
                    Case Is = 1
                        MsgBox "密码错误!" & vbCr & "您还有两次次机会!", vbOKOnly + vbExclamation, "警告"
                    Case Is = 2
                        MsgBox "密码错误!" & vbCr & "您还有一次次机会!", vbOKOnly + vbExclamation, "警告"
                    Case Is = 3
                        MsgBox "密码错误,请重新登陆!", vbOKOnly + vbExclamation, "警告"
                        End
                End Select
            End If
        End If
    End If
    
End Sub

权限判断

注意:主窗体的代码

Private Sub MDIForm_Load()
    '显示当前时间
    
    
    Dim mrc As ADODB.Recordset '用来存放记录集对象
    Dim txtSQL$ '用来存放SQL语句
    Dim MsgText$ '用来存放返回信息
    
    '连接数据库
    txtSQL = "select*from user_info where userid='" & UserName & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    Level = Trim(mrc.Fields(2))
    '将信息添加到工作表中
    txtSQL = "select *from worklog_info "
    Set mrc_wLog = ExecuteSQL(txtSQL, MsgText)
    mrc_wLog.AddNew
    mrc_wLog.Fields(1) = Trim(UserName) '操作的老师
    mrc_wLog.Fields(2) = Level
    mrc_wLog.Fields(3) = Format(Date, "yyyy-MM-dd")
    mrc_wLog.Fields(4) = Format(Time, "hh:mm:ss")
    mrc_wLog.Fields(5) = Null
    mrc_wLog.Fields(6) = Null
    mrc_wLog.Fields(7) = GetThisComputerName
    mrc_wLog.Fields(8) = "True"
    mrc_wLog.Update
    Serial = mrc_wLog.Fields(0)
    mrc_wLog.Close
    
    
    '判断是否具有管理员权限
    If (Trim(mrc.Fields(2))) = "管理员" Then
        Operator.Enabled = True
        Administrator.Enabled = True
        mrc.Close '关闭数据库
        Exit Sub
    End If
    
    '判断是否具有操作员权限
    If (Trim(mrc.Fields(2))) = "操作员" Then
        Operator.Enabled = True
        mrc.Close '关闭数据库
        Exit Sub
    End If
    
    '将信息添加到工作表中
    txtSQL = "select *from worklog_info "
    Set mrc_wLog = ExecuteSQL(txtSQL, MsgText)
    mrc_wLog.AddNew
    mrc_wLog.Fields(1) = Trim(UserName) '操作的老师
    mrc_wLog.Fields(2) = Level
    mrc_wLog.Fields(3) = Format(Date, "yyyy-MM-dd")
    mrc_wLog.Fields(4) = Format(Time, "hh:mm:ss")
    mrc_wLog.Fields(5) = ""
    mrc_wLog.Fields(6) = ""
    mrc_wLog.Fields(7) = GetThisComputerName
    mrc_wLog.Fields(8) = "True"
    mrc_wLog.Update
    mrc_wLog.Close
    
End Sub

这种方式就是代码比较多,比较繁琐,但是基本功能实现了,如果您有更好的方式,期待您的分享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值