操作机房时,和 MSFlexGrid 控件 打了不少交道, 在一些查询组合窗体及删除和添加用户和学生上机状态查看窗体,我们都用到了 MSFlexGrid 控件,郁闷的是如何删除呢?要不一选全部都选了,要不就是第一、二列不变色,其实它是选中的,如:
一、删除和添加用户
当我添加完用户时,我不想要的时候,想去删掉它,该怎么删啊,刚开始一删全部都删除了,而且也不是自己想要的那个感觉。研究了半天,终于找到了自己想要的那个感觉了。下面给大家展示一下代码:
Private Sub Command2_Click() '删除myflexgrid中选中的行及表中的记录
If myflexgrid.RowSel = 0 Then '如果选中行为第一行
MsgBox "请选择要删除的用户!", vbOKOnly + vbExclamation, "提示"
Else
txtSQL = "delete from user_info where userID='" & Trim(myflexgrid.TextMatrix(myflexgrid.Row, 0)) & "'"
Set mrc = ExecuteSQL(txtSQL, msgtext) '删除表中记录
myflexgrid.RemoveItem myflexgrid.Row '删除选中行
MsgBox "用户已成功删除!", vbOKOnly + vbExclamation, "提示"
End If
End Sub
二、学生上机状态查看窗体
学生上机状态查看窗体中有一个选中学生下线,当你想让学生下线时,你可以选中卡号对应的那一列,就OK了。代码展示:
Private Sub txtChooseOffLine_Click() '选中学生下线
Dim mm As String
If MSFlexGrid1.RowSel = 0 Then
MsgBox "请选择学生下机!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
txtSQL = "select * from online_Info"
Set mrc = ExecuteSQL(txtSQL, msgtext)
mm = Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)) '返回你选中的字段对应的值
txtSQL = "delect from online_info where cardno='" & mm & "'" '删除被选中卡号的记录
Set mrc = ExecuteSQL(txtSQL, msgtext)
MSFlexGrid1.RemoveItem (MSFlexGrid1.RowSel) '清除MSFlexGrid1中选中的行
MsgBox "该学生成功下机!", vbOKOnly + vbExclamation, "提示"
End Sub
三、删除和添加用户和学生上机状态查看窗体,需要共同改MSFlexGrid 控件属性
四、想要的感觉来了(主要还是感谢皓月同学)
1.> Row 设置/返回当前单元的垂直坐标
2.>Col 设置/返回网格的列数量
3.>RowSel 设置/返回某个范围单元的起始行
4.>ColSel 设置/返回某个范围单元的起始列
【总结】一个小控件也很值得我们去探索一下。