机房收费系统——上机窗体

上机窗体是在注册完之后需要上机的时候开始使用,但是具体的一些限制还是需要注意一下,比如该卡
号是否注册,是否退卡等等,接下来就看看这个过程。

具体代码如下所示:

Private Sub cmdOnline_Click()
'定义数据库对象
Dim mrcStudent As adodb.Recordset
Dim mrcCancelCard As adodb.Recordset
Dim mrcOnline As adodb.Recordset
Dim mrcLine As adodb.Recordset
Dim mrcBasicData As adodb.Recordset

'定义字符串语句
Dim OnlineSQL As String
Dim StudentSQL As String
Dim BasicDataSQL As String
Dim LineSQL As String
'定义返回查询信息变量
Dim Onmsgtext As String
Dim StuMsgtext As String
Dim BMsgtext As String
Dim LMsgtext As String

'判断是否输入卡号
    If Trim(txtCardNo.Text) = "" Then
        MsgBox "请输入卡号!", 0 + 48, "温馨提示"
        txtCardNo.SetFocus
        Exit Sub
    Else
        '判断输入的是否是数字
        If Not IsNumeric(txtCardNo.Text) Then
            MsgBox "请输入数字", 0 + 48, "温馨提示"
            txtCardNo.Text = ""
            txtcard.SetFocus
            Exit Sub
        Else
    '判断此卡是否存在
        StudentSQL = "select * from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrcStudent = ExecuteSQL(StudentSQL, StuMsgtext)
        
    '判断是否注册
        If mrcStudent.EOF Then
            MsgBox "此卡尚未注册!", 0 + 48, "提示"
            txtCardNo.SetFocus
            txtCardNo.Text = ""
            mrcStudent.Close
            Exit Sub
        Else
        '判断是否退卡
            If mrcStudent.EOF = False And mrcStudent.Fields(10) = "未使用" Then
                MsgBox "该卡号已经退卡,不能上机!", 0 + 48, "警告"
                txtCardNo.Text = ""
                txtCardNo.SetFocus
                mrcStudent.Close
            Else
    
            '判断余额是否大于最小上机金额
                If Val(mrcStudent.Fields(7)) < Val(Register.txtRecharge) Then
                    MsgBox "亲,余额不足,请充值!", 0 + 48, "提示"
                    mrcStudent.Close
                    Exit Sub
                Else
                '判断是否上机
                OnlineSQL = "select * from online_info where cardno='" & txtCardNo.Text & "'"
                Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
    
                    If Not mrcOnline.EOF Then
                    MsgBox "此卡正在上机!", 0 + 48, "提示"
                    Exit Sub
                    Else
    
                    '更新上下机界面
                    txtSID.Text = mrcStudent.Fields(1)
                    txtDept.Text = mrcStudent.Fields(4)
                    txtSex.Text = mrcStudent.Fields(3)
                    txtondate.Text = Date
                    txtOntime.Text = Time
                    txttype.Text = mrcStudent.Fields(14)
                    txtName.Text = mrcStudent.Fields(2)
                    txtBalance.Text = mrcstduent.Fields(7) '余额更新
                      
                    '更新Online表
                    OnlineSQL = "select * from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
                    Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
                    
                    mrcOnline.AddNew
                    mrcOnline.Fields(0) = Trim(txtcard.Text)
                    mrcOnline.Fields(1) = Trim(txttype.Text)
                    mrcOnline.Fields(2) = Trim(txtSID.Text)
                    mrcOnline.Fields(3) = Trim(txtName.Text)
                    mrcOnline.Fields(4) = Trim(txtDept.Text)
                    mrcOnline.Fields(5) = Trim(txtSex.Text)
                    mrcOnline.Fields(6) = Trim(txtondate.Text)
                    mrcOnline.Fields(7) = Trim(txtOntime.Text)
    
                    '获取计算机的名字
                    mrcOnline.Fields(8) = Trim(VBA.Environ("computername"))
                    mrcOnline.Fields(9) = Date
                    
                    mrcOnline.Update
                    mrcOnline.Close
                    
                    '显示正在上机的人数
                    OnlineSQL = "select * from online_info"
                    Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
                    
                        If mrcOnline.EOF = True Then
                            lblPeople.Caption = 0
                        Else
                            lblPeople.Caption = mrcOnline.RecordCount
                        End If
                            label23.Caption = "欢迎光临"
                        End If
                    End If
                End If
            End If
        End If
    End If
End Sub

注意:这个窗体查询了5个表,所以要定义5个连接数据库的对象

猜你喜欢

转载自blog.csdn.net/huihui1314_/article/details/82876354