第一次机房收费——上机流程

一开始无从下手,问了比我进度快的同学,他们重要指出,要想整体的了解整个系统,少不了流程图的帮助,当你把整个流程画出来之后,系统的大体就会掌握,然后再细细的把每一步执行下去!

1.上机流程图

在这里插入图片描述
2.上机部分流程代码

Private Sub cmdOnline_Click()
    Dim mrc As ADODB.Recordset '连接学生表
    Dim mrc1 As ADODB.Recordset '连接上线表
    Dim mrc2 As ADODB.Recordset '连接基础表
    Dim mrc3 As ADODB.Recordset '连接line表
    Dim txtSQL As String
    Dim MsgText As String
    
    If txtCardNo.Text = "" Then '判断是否输入卡号
        MsgBox "请输入卡号", vbOKOnly + vbExclamation, "提示"
        txtCardNo.SetFocus
        Exit Sub
    End If
    If Not IsNumeric(Trim(txtCardNo.Text)) Then '判断卡号是否为数字形式
        MsgBox "请输入正确的卡号!", vbOKOnly + vbExclamation, "提示"
        txtCardNo.Text = ""
        txtCardNo.SetFocus
        Exit Sub
    End If
    
    txtSQL = "select * from student_info where cardno='" & txtCardNo.Text & "' and status='使用'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    If mrc.EOF = True Then
        MsgBox "无此卡号,请核对后再重新输入", vbOKOnly + vbExclamation, "提示" '判断卡号是否已注册
        txtCardNo.Text = ""
        txtCardNo.SetFocus
    Else
        txtSQL = "select * from Online_info where cardno='" & txtCardNo.Text & "'"
        Set mrc1 = ExecuteSQL(txtSQL, MsgText)
        
    If mrc.EOF = False Then '判断卡号是否登录
        MsgBox "此卡号已登录,请勿重复登录!", vbOKOnly + vbExclamation, "提示"
        txtOnDate.Text = mrc1.Fields(6)
        txtOnTime.Text = mrc1.Fields(7)
    Else
    
        txtSQL = "select * from  BasicData_info"
        Set mrc2 = ExecuteSQL(txtSQL, MsgText)
        
        If Val(mrc.Fields(7)) < Val(mrc2.Fields(5)) Then  '判断余额是否充足
            MsgBox "余额不足,无法登录,请充值", vbOKOnly + vbExclamation, "提示"
            frmRecharge.Show                              '充值窗口显示
            
        Else
            '显示主窗体的信息
            txtCardNo.Text = Trim(mrc.Fields(0)) 'trim()函数是用来去掉字符串前面和后面的空格
            txtSID.Text = Trim(mrc.Fields(1))
            txtDept.Text = Trim(mrc.Fields(4))
            txtType.Text = Trim(mrc.Fields(14))
            txtName.Text = Trim(mrc.Fields(2))
            txtSex.Text = Trim(mrc.Fields(3))
            txtOnDate.Text = Date
            txtOnTime.Text = Time
            txtBalance.Text = Trim(mrc.Fields(7))
            
            mrc.Update
            mrc.Close
            
            '数据更新到Online表中
            txtSQL = "select * from Online_info"
            Set mrc = ExecuteSQL(txtSQL, MsgText)
            
            mrc.AddNew '添加新纪录
            mrc.Fields(0) = Trim(txtCardNo.Text)
            mrc.Fields(1) = Trim(txtType.Text)
            mrc.Fields(2) = Trim(txtSID.Text)
            mrc.Fields(3) = Trim(txtName.Text)
            mrc.Fields(4) = Trim(txtDept.Text)
            mrc.Fields(5) = Trim(txtSex.Text)
            mrc.Fields(6) = Trim(txtOnDate.Text)
            mrc.Fields(7) = Trim(txtOnTime.Text)
            mrc.Fields(8) = VBA.Environ("computername")
            mrc.Fields(9) = Now
            
            '查询上机人数并更新
            Label16.Caption = "当前上机人数为:" & mrc.RecordCount & "人"
            
            mrc.Update
            mrc.Close
            
            txtSQL = "select * from Line_info"
            Set mrc3 = ExecuteSQL(txtSQL, MsgText)
            
            mrc3.Fields(1) = Trim(txtCardNo.Text)
            mrc3.Fields(2) = Trim(txtSID.Text)
            mrc3.Fields(3) = Trim(txtName.Text)
            mrc3.Fields(4) = Trim(txtDept.Text)
            mrc3.Fields(5) = Trim(txtSex.Text)
            mrc3.Fields(6) = Trim(txtOnDate.Text)
            mrc3.Fields(7) = Trim(txtOnTime.Text)
            mrc3.Fields(12) = Trim(txtBalance.Text)
            mrc3.Fields(13) = "正常上机"
            mrc3.Fields(14) = VBA.Environ("computername")
            
            mrc3.Update
            mrc3.Close
            MsgBox "上机完成!", vbOKOnly + vbExclamation, "提示"
        End If
    End If
End If
End Sub

Guess you like

Origin blog.csdn.net/yangsimo/article/details/118294583