【机房】添加和删除用户

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

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

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

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

感谢阅读,欢迎斧正~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张_Laura

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值