Estudiantes seleccionados sin conexión para el primer sistema de carga de sala de computadoras

La idea de seleccionar estudiantes sin conexión es relativamente simple. El siguiente es mi diagrama de flujo.

Visualización del fragmento de código:

De acuerdo con el diagrama de flujo, primero debemos seleccionar a los estudiantes que desean desmontar, por lo que en MSHFlexGrid1, seleccione una fila, esta fila debe cambiarse de color para distinguir si está seleccionada.

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, 5) = "??" Then '?判断是否选中这一行,没有选中,点击后即可选中
        MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = ""

For col = 0 To MSHFlexGrid1.Cols - 1 '从第0行到总列数
            '恢复颜色为白色
            MSHFlexGrid1.col = col
            MSHFlexGrid1.CellBackColor = vbWhite
        Next col
    Else
        MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = "??"
        '??????
        For col = 0 To MSHFlexGrid1.Cols - 1
            MSHFlexGrid1.col = col
            MSHFlexGrid1.CellBackColor = &HFFFF00
        Next col

    End If

Si se selecciona una determinada fila, el botón "estudiantes seleccionados para desembarcar" está disponible, de lo contrario no está disponible

If MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = "√" Then
        SelStuOffline.Enabled = True
    Else
        SelStuOffline.Enabled = False
    End If

Seleccione el código fuera de la máquina del estudiante

Private Sub SelStuOffline_Click () 'Seleccione el estudiante fuera de línea
    Dim sz (999) As String' La matriz utilizada para almacenar la ID del estudiante de la verificación de código
    Dim xh (999) As
    String 'El número de línea utilizado para almacenar la verificación de código Dim txtCash As String 'Balance
    Dim consume As
    String ' Almacene la cantidad de consumo Dim consumtime As String 'Almacene el tiempo total
    
    Dim z As Integer Almacene la variable
    Dim i As Integer usada para el número de estudiante con la marca de verificación' Variable
    Dim s As Integer llamado al cambiar el color ' El número de variable se almacena con una verificación de la línea utilizada
    Dim j como Integer 'número de línea
    Dim t' time
    Dim bob as Boolean 'La bandera se usa para mostrar todos los clics de botón, y el comienzo predeterminado es falso
    Dim txtSQL de como String
    Dim txtSQL1 de como String
    Dim Msgtext As String
    Dim OnLine
    As ADODB.Recordset 'Conectarse a la tabla de estudiantes Dim mrc1 As ADODB.Recordset'En nombre de la mesa en línea hay un límite de tiempo
    Línea atenuada como ADODB.
    BAS de As ADODB.Recordset Dim
    Dim STU de As ADODB.Recordset
    Dim MRC2 de As ADODB.Recordset
    
    Con MSHFlexGrid1
    
        el If = 0 .RowSel the Then
            MsgBox "Por favor, seleccione la tarjeta para la siguiente máquina", vbOKOnly + vbExclamation, "prompt"
        Else
            'es seleccionado por la máquina de grabación Agregue una marca de verificación en la última línea y almacene toda la información del número de tarjeta de estos registros en la matriz sz
            i =                 0 'La primera de la matriz es 0
            For j = 1 To .Rows-1
If .TextMatrix (j, 5 ) = "√"
                    Entonces ' Registre el número de línea con la marca de verificación sz (i) = .TextMatrix (j, 0)' Guarde los datos del número de tarjeta en la matriz sz
                    xh (i) = Val (j) 'Guarde el número de línea en
                    i = i + 1
                End If
            Next j
            
            For z = 0 To i-1 en la matriz xh
                txtSQL = "seleccionar * de BasicData_info"
                Establecer bas = ExecuteSQL (txtSQL, Msgtext)
                
                txtSQL = "seleccionar * de student_info donde cardno = '" & sz (z) & "' y estado = '" & "使用" & "'"
                Establecer stu = ExecuteSQL (txtSQL, Msgtext)
                
                txtSQL = "select * from OnLine_info donde cardno = '" & sz (z) & "'"
                Establecer OnLine = ExecuteSQL (txtSQL, Msgtext)
                
                consumtime = DateDiff ("n", Trim (OnLine) ! Fecha), Ahora) '计算 消费 金额
                Si Val (tiempo de consumo) <= Val (bas! Tiempo de preparación) Entonces'El tiempo de consumo es menor que el tiempo mínimo prescrito y la cantidad de consumo es 0.
                    consume = 0
                Else
                    If Val (tiempo de consumo) Mod Val (bas! UnitTime) = 0 Entonces 'Calcule el tiempo de consumo
                        t = Int (consumtime / bas! unitTime)
                    Else
                        t = Int (consumtime / bas! unitTime) + 1
                    End If
                    
                    If stu.EOF Then
                        MsgBox "Este número de tarjeta no está registrado o ha sido reembolsado", vbOKOnly + vbExclamation, "Prompt"
                        Exit Sub
                        
                    Else 'Juzgando
                        si es un usuario fijo o un usuario temporal
                        Si Trim (stu! Type) = Trim ("usuario fijo") Entonces
                            consume = t * bas.Fields (0)
                        Else
                            consume = t * bas.Fields (1)
                        End If
                    Terminara si
                End If
                
                txtCash = Val (stu! Cash) - consume '计算 余额
                
                ' 更新 línea 表
                txtSQL = "select * from Line_info donde cardno = '" & sz (z) & "' y ondate = '" & OnLine! OnDate & " 'and ontime =' "& OnLine! OnTime &" '"
                Establecer mrc1 = ExecuteSQL (txtSQL, Msgtext)
                mrc1.Fields (1) = sz (z)
                mrc1.Fields (2) = Trim (stu.Fields (1))
                mrc1.Fields (3) = Trim (stu.Fields (2))
                mrc1.Fields (4) = Trim (stu.Fields (4))
                mrc1.Fields (5) = Trim (stu.Fields (3))
                mrc1. Campos (6) = Recortar (est.Campos (6))
                mrc1.Fields (7) = Recortar (est. Campos (7))
                mrc1.Fields (10) = tiempo de consumo
                mrc1.Fields (11) = consumir
                mrc1.Fields (12) = Val (txtCash)
                mrc1.Fields (13) = "正常 下 机"
                mrc1.Fields (14) = GetThisComputerName
                mrc1.Fields (8) = Fecha
                mrc1.Fields (9) = Hora
              
                stu.Close
                OnLine.Close
                
                '更新 学生 表
                txtSQL = "select * from student_info donde cardno ='" & Trim (sz (z)) & "'"
                Set mrc2 = ExecuteSQL (txtSQL, Msgtext)
                mrc2.Fields (7) = txtCash
                mrc2.Update
                '更新 online 表
                txtSQL1 = "eliminar de OnLine_Info donde cardno = '" & Trim (sz (z)) & "'"
                Establecer OnLine = ExecuteSQL (txtSQL1, Msgtext)
              
            Siguiente z
            
            '更新 msflexgrid1 界面
            For s = 0 To i - 1
                If .Rows> 2 Entonces
                    .RemoveItem xh (s)
                Else
                    .Clear
                    .Enabled = False
                End If
            Next s
        End If
    End With
    
End Sub

Supongo que te gusta

Origin blog.csdn.net/weixin_45309155/article/details/106310216
Recomendado
Clasificación