选中下线与所有学生下线

【前言】

选中下线和所有学生下线,其实和主窗体的下机按钮的内容一样。感觉自己如果还是把代码在重复的写一遍,好费劲啊。所以聪明的我想了一个聪明的办法,哈哈哈。

【简单方法】

1、分析

MDI窗体的下机按钮的卡号,是控件txtcardno(就是卡号)的文本。那如果调用下机按钮的事件,只需要将选中的学生卡号赋值给txtcardno.text在进行调用下机按钮单机事件就可以了

很容易理解吧。嘿嘿

2、具体实现

(1) 选中学生下线

① 先改变MSHFlexGrid1的属性,如图所示

② 在窗体加载事件里面添加代码

MSHFlexGrid1.SelectionMode = flexSelectionByRow          '单击时选择整行
MSHFlexGrid1.FocusRect = flexFocusNone                   '在当前但愿的周围画一个焦点框
MSHFlexGrid1.HighLight = flexHighlightWithFocus          '该值决定了所选定的单元是否突出示

③ 将MDI窗体的下机按钮单击事件,改成Public定义事件

Public Sub cmdOffLine_Click()

④ 在选中学生下线单击事件里面添加代码

Private Sub ChooseOffLine_Click()
    With MSHFlexGrid1
        If .TextMatrix(.RowSel, 0) = "" Or .RowSel = 0 Then      '如果选择的那一行第一列是空或者选择的哪一行是第一行
            MsgBox "请选择数据!", vbOKOnly + vbExclamation, "提示"
            Exit Sub
        Else
            frmMain.txtCardNo.Text = .TextMatrix(.RowSel, 0)     '将选中的那一行的第一列表示卡号赋值给txtcardno.text
            frmMain.cmdOffLine.Value = True                      '调用主窗体的下机按钮单机事件
            .RemoveItem (.RowSel)                                 '将选中的那一行从MSHFlexGrid1移除
            MsgBox "选中学生下机成功!", vbOKOnly + vbExclamation, "提示"
        End If
    End With
End Sub

(2)所有学生下线

① 其实就是上面选中学生下线的前三步,如果设置过,之间进行下面的一步

② 在所有学生下线单击事件里面添加代码

Private Sub AllOffLine_Click()
    Dim i As Integer
    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim msgtext As String
    
    txtSQL = "select * from online_info"       '连接在线表
    Set mrc = ExecuteSQL(txtSQL, msgtext)
    '判断是否有卡号上机
    If mrc.RecordCount = 0 Then
            MsgBox "现在没有人上机!", vbOKOnly + vbExclamation, "提示"
            mrc.Close
    Else
        mrc.MoveFirst                          '回到第一条记录
        '将上机卡号定义为一个数组,ReDim就是定义数组的
        ReDim a(mrc.RecordCount) As String
        For i = 0 To mrc.RecordCount - 1       '建立循环
            a(i) = Trim(mrc!CardNo)
            CardNo = a(i)

            frmMain.txtCardNo.Text = a(i)      '给txtcardno.text赋值            
            frmMain.cmdOffLine.Value = True    '调用MDI窗体的下机单机事件
            mrc.MoveNext                       '移动到下一条记录
        Next
        MsgBox "所有学生下机成功!", vbOKOnly + vbExclamation, "提示"
        MSHFlexGrid1.Clear                     '清空MSHFlexGrid1里面的内容
    End If
End Sub

【结语】

是不是很简单啊,哈哈。其实可能有更简单的方法,欢迎大家向我提意见哦!

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/84931737