机房——管理员——添加、删除用户

这个窗体是管理员的特权,拥有任命和解雇的权利。主要涉及四个功能:查看、添加、删除和退出
查看,就是查看目前已任命的管理员、操作员和一般用户的人数及相关信息。
在这里插入图片描述
由图片我们可以看出,当选择用户级别时,下方控件自动给出这个级别的所有员工信息,包括用户名,姓名和开户人。功能较简单,很好实现,如何实现在上篇博客已经说明,这里不做过多赘述
添加,可以理解为当前登录的管理员添加新雇佣员工的信息
下图为窗体界面
在这里插入图片描述
在这个窗体,我做了一个小优化,在text框中显示水印字体。具体如何操作的在后期将会更新。这个窗体涉及一个逻辑问题,就是一般用户,一般用户在这个机房系统中属于什么级别呢?为什么存在呢?我把一般用户定义为学生,他享有学生的一切功能。所有在添加用户的时候,我取消了一般用户的选项,只能添加操作员和管理员。
下图为添加用户的流程图,流程图,就是这个添加用户功能是代码执行的逻辑顺序,包括需要考虑的各种情况
在这里插入图片描述
添加用户的部分代码展示

 If txtUserName.Text = "" Then
        MsgBox "用户名不能为空!", 48, "提示"
        txtUserName.SetFocus
        Exit Sub
    Else
    
    txtsql = "select * from user_info where userid = '" & txtUserName.Text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)
    
        If mrc.EOF = False Then
            MsgBox "用户名已存在,请重新输入用户名!", 48, "提示"
            txtUserName.Text = ""
            txtUserName.SetFocus
            Exit Sub
        End If
    End If
    
    If comboUserLevel.Text = "" Then
        MsgBox "请选择用户级别", 48, "提示"
        comboUserLevel.SetFocus
        Exit Sub
    End If
    
    If txtName.Text = "" Then
        MsgBox "请输入姓名!", 48, "提示"
        txtName.SetFocus
        Exit Sub
    End If
    
    If txtPassWord1.Text = "" Then
        MsgBox "请输入密码!", 48, "提示"
        txtPassWord1.SetFocus
        Exit Sub
    End If
    
    If txtPassWord2.Text = "" Then
        MsgBox "请输入确认密码!", 48, "提示"
        txtPassWord2.SetFocus
        Exit Sub
    End If
    
    
    
    
    If Trim(txtPassWord1.Text) <> Trim(txtPassWord2.Text) Then
            MsgBox "两次输入密码不一样", vbOKOnly + vbExclamation, "警告"
            txtPassWord1.SetFocus
            txtPassWord1.Text = ""
            txtPassWord2.Text = ""
            Exit Sub
        
    Else
        
        mrc.AddNew
        mrc.Fields(0) = txtUserName.Text
        mrc.Fields(1) = txtPassWord1.Text
        mrc.Fields(2) = comboUserLevel.Text
        mrc.Fields(3) = txtName.Text
        mrc.Fields(4) = txtPassWord2
        
        mrc.Update
        mrc.Close
        MsgBox "添加用户成功!", vbOKOnly + vbExclamation, "提示"
       
    End If

接下来是删除用户
删除用户,就是删除对已离职的员工信息,进行删除,更新数据库,使得数据库保持一个最新的信息状态
首先要选择要删除的用户,那么就要实现对MSHFlexGrid控件的选定,单机MSHFlexGrid1控件编译属性,如下图
在这里插入图片描述
然后,对选择的用户进行删除,更新数据库信息
部分代码展示

If comboUserLevel.Text = "" Then
        MsgBox "请先选择用户级别!", 48, "提示"
        Exit Sub
    Else
   
    txtsql = "select *from User_Info where userID='" & Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

        If Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) = Trim(UserID) Then
            MsgBox "该用户正在登陆,不能删除!", 48, "提示"
        Else
            If mrc.EOF = True Then
                MsgBox "该级别用户为空,没有可删除的对象!", 48, "提示"
                Exit Sub
            Else
                txtsql = "delete from User_Info where userID = '" & Trim(myFlexgrid.TextMatrix(myFlexgrid.Row, 0)) & "'"
                Set mrc = ExecuteSQL(txtsql, msgtext)
            End If
        End If
    End If
      
   If myFlexgrid.Row = 1 Then
        MsgBox "您需要保留一个用户!"
        Exit Sub
   Else
       myFlexgrid.RemoveItem myFlexgrid.Row
   End If
 
    MsgBox "删除成功!", 48, "提示"

最后一个是更新,就是更新到最新的数据库状态,为了防止添加或删除用户后,数据库未能自动更新至最新的信息状态,使用者可以手动更新,查看添加或删除用户是否成功。
部分代码展示

If comboUserLevel.Text = "" Then
        MsgBox "请先选择用户级别!", 48, "提示"
        Exit Sub
    End If
    
    txtsql = "select * from user_info where level ='" & comboUserLevel.Text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)
    
    With myFlexgrid
    .rows = 1
    .CellAlignment = 4
    .TextMatrix(0, 0) = "用户名"
    .TextMatrix(0, 1) = "姓名"
    .TextMatrix(0, 2) = "开户人"
    
    Do While Not mrc.EOF
        
        .rows = .rows + 1
        .CellAlignment = 4
        .TextMatrix(.rows - 1, 0) = Trim(mrc.Fields(0))
        .TextMatrix(.rows - 1, 1) = Trim(mrc.Fields(3))
        .TextMatrix(.rows - 1, 2) = Trim(mrc.Fields(4))
        mrc.MoveNext    '移动到下一条记录
'        MsgBox "已更新到最新数据", 48, "提示"
'        Exit Sub
    Loop
    End With

这个窗体的逻辑相对简单,功能却很实用,在机房系统的运行中必不可少,后期陆续更新!

猜你喜欢

转载自blog.csdn.net/qq_42758288/article/details/84995459