【机房】添加和删除用户

举报
Laura_张 发表于 2022/08/27 00:26:01 2022/08/27
【摘要】 机房收费系统中,管理员可以添加和删除用户。 窗体界面: 更新 一打开就可以查看用户基本信息,对应着用户级别,可查看不同的用户基本信息。 Private Sub ComboUserBank_Clic...

机房收费系统中,管理员可以添加和删除用户。

窗体界面:
在这里插入图片描述
更新

一打开就可以查看用户基本信息,对应着用户级别,可查看不同的用户基本信息。

Private Sub ComboUserBank_Click()
    If ComboUserBank.Text = "管理员" Or ComboUserBank.Text = "操作员" Or ComboUserBank.Text = "一般用户" Then
        Call cmdUpdate_Click '调用更新按钮
    End If
End Sub

上面有一个调用更新按钮,因为不需要手动更新,我就把这个按钮隐藏起来了,所以在程序运行的时候,是看不见这个更新按钮的。

这个更新按钮,可以清空之前的记录,然后更新一下数据库里面的数据,并更新在MSHFlexGrid表格中。所以程序运行的时候,是可以直接查看用户级别对应的用户的基本信息的。

Private Sub cmdUpdate_Click()

    Dim txtSQL As String
    Dim MsgText As String
    Dim mrc As Recordset

    '清空之前的数据
    MSHFlexGrid1.Rows = 2

    '添加列名
    With MSHFlexGrid1

        .CellAlignment = 4
        .TextMatrix(1, 0) = "用户ID"
        .TextMatrix(1, 1) = "姓名"
        .TextMatrix(1, 2) = "开户人"

    End With

    '查询数据库
    txtSQL = "select * from User_Info where Level='" & Trim(ComboUserBank.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)

    'DO...Loop向表格中添加数据
    Do While Not mrc.EOF

        With MSHFlexGrid1
            .Rows = .Rows + 1
            .CellAlignment = 4
            .TextMatrix(.Rows - 1, 0) = mrc.Fields(0) '用户ID
            .TextMatrix(.Rows - 1, 1) = mrc.Fields(3) '姓名
            .TextMatrix(.Rows - 1, 2) = mrc.Fields(4) '开户人

            mrc.MoveNext
        End With
    Loop
    mrc.Close
End Sub


添加用户

添加用户用的是一个新的窗体

在这里插入图片描述

确定的代码首先要判断各个控件输入内容是否为空,然后连接数据库进行判断用户名是否存在,然后在判断密码输入是否一致,然后就可以更新到数据库中了。

Private Sub cmdOk_Click()
    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim MsgText As String
    
    '判断各个文本框的内容是否为空值
    If Testtxt(txtusername.Text) = False Or Testtxt(txtname.Text) = False Or Testtxt(txtcode1.Text) = False Or Testtxt(txtcode2.Text) = False Then
        MsgBox "文本框内容不能为空!", 0 + 48, 警告
        Exit Sub
    End If
    
    '用户等级不能为空
    If Testtxt(Combolevel.Text) = False Then
        MsgBox "请选择用户级别!", 0 + 48, 警告
        Exit Sub
    End If
    
    '判断用户名是否已经存在
    txtSQL = "select * from user_info where userid='" & Trim(txtusername.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    If mrc.EOF And mrc.BOF Then
        '判断两次密码输入是否一致
        If txtcode1.Text = txtcode2.Text Then
                txtSQL = "insert into user_info values('" & Trim(txtusername.Text) & "','" & Trim(txtcode1.Text) & "','" & Trim(Combolevel.Text) & "','" & Trim(txtname.Text) & "','" & Username & "')"
                Set mrc = ExecuteSQL(txtSQL, MsgText)
                MsgBox "添加用户成功!", 0 + 48, 警告
'                清空单元格内容
                txtusername.Text = ""
                Combolevel.Text = ""
                txtname.Text = ""
                txtcode1.Text = ""
                txtcode2.Text = ""
                Exit Sub

        Else
            MsgBox "两次密码输入不一致!", 0 + 48, 警告
            txtcode1.Text = ""
            txtcode2.Text = ""
            txtcode1.SetFocus
            Exit Sub
        End If
    
    Else
       MsgBox "用户名已经存在!", 0 + 48, 警告
       txtusername.Text = ""
       txtusername.SetFocus
       Exit Sub
    End If

End Sub

以上代码需要注意逻辑问题,逻辑没有问题了程序运行就没有问题了。
当然输入的数据还有一系列的限制代码,这里就不再赘述了。

删除用户

删除用户需要注意的是,数据表中的第一行记录是不可以删除,第一行是表头,是不可以删除的。
删除的时候需要判断该用户是否在登陆,登陆的用户是不可以删除的。

Private Sub cmdDelete_Click()

    Dim txtSQL As String
    Dim MsgText As String
    Dim mrc As Recordset
    
    Rem:删除,点击选中一行
    MSHFlexGrid1.SelectionMode = flexSelectionByRow          '点击的时候选择的是整行
    MSHFlexGrid1.FocusRect = flexFocusNone                       '选中行显示焦点区域
    MSHFlexGrid1.HighLight = flexHighlightWithFocus            '该值决定了所选定的行突出显示

    txtSQL = "select * from User_Info where UserID= '" & Trim(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.RowSel, 0)) & " '"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    Rem:删除,选中一行删除,要考虑表头(第一行)不能删除
    With MSHFlexGrid1
        .CellAlignment = 4
        
        '起始行
        If .RowSel = 0 Then
            MsgBox "起始行不能选择,请选择数据", 64, "温馨提示"
            Exit Sub
       End If
        
        'rowsel为一定范围的单元格返回或设置的起始行和或终止行
        'colsel为一定范围的单元格返回或设置的起始列和或终止列
        If .RowSel > 0 Then
                If mrc.EOF = True Then
                    MsgBox "列名不可删除!", 64, "温馨提示"
                    Exit Sub
                Else
                    '判断该用户是否正在登陆
                    If Trim(.TextMatrix(.RowSel, 0)) = Username Then
                        MsgBox "该用户正在登录,不能删除", 64, "温馨提示"
                        Exit Sub
                    Else
                        '删除数据库中与选中的行一致的数据(删除查询的数据集)
                        mrc.Delete
                        mrc.Close
                        
                        MSHFlexGrid1.RemoveItem MSHFlexGrid1.RowSel   '删除选中的行
                        MsgBox "用户已删除", 64, "温馨提示"
                    End If
                End If
            End If
      End With
End Sub

感谢阅读,欢迎斧正~

文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Laura__zhang/article/details/107459419

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。