[前言]
在做管理用户中的删除用户模块的时候遇到一个难点“删除用户”,按照自己的思路运行下去要把所有同一个用户级别的账号全部删除掉!!!这就违反了这个窗体本身存在的意义,经过站在巨人的肩膀上更好的学习。
[流程]
1.选择对应的用户级别显示对应的账号信息
2.点击账号信息一列,改变背景颜色,选中状态为“√”
3.再次点击取消选中状态“√”,并且删除按钮不可使
4.使用定时器取代更新按钮,一定时间内自动更新
5.效果如图所示
[代码]
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
MSHFlexGrid1.SelectionMode = flexSelectionByRow '单击的时候选择的是整行
MSHFlexGrid1.FocusRect = flexFocusNone '在当前单元的周围画一个焦点框
MSHFlexGrid1.HighLight = flexHighlightWithFocus '该值决定了所选定的单元是否突出显示
With MSHFlexGrid1
If .RowSel = 0 Then
MsgBox "请选择数据", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else
If .RowSel > 0 Then
txtSQL = "delete from user_Info where userID='" & Trim(MSHFlexGrid1.TextMatrix(.RowSel, 0)) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'判断该用户是否正在登录
If Trim(MSHFlexGrid1.TextMatrix(.RowSel, 0)) = UserName Then
MsgBox "该用户正在登录,不能删除", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
a = MsgBox("确定要删除该用户吗?", vbYesNo, "提示")
If a = 6 Then
.RemoveItem .RowSel
Else
Exit Sub
End If
End If
End If
End If
End With
改变颜色和状态
Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'如何选中不连续的行
Dim col As Integer
If MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) = "√" Then
MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) = ""
Else
MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) = "√"
'改变行颜色(选中后的颜色)
For col = 0 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.col = col
MSHFlexGrid1.CellBackColor = &HFFFF00
Next col
End If
'判断是否选中数据,如果选中数据那么就会让你的修改按钮为激活装态
If (MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) = "√") Then
Command2.Enabled = True
Else
Command2.Enabled = False
End If
End Sub
[总结]
有自己的想法就去做,做过了之后再站在巨人的肩膀上会收获的更多。