天天看点

机房收费系统之上机

先上一张导图

机房收费系统之上机

学生上机功能是我们用到多个表的第一个功能,在学生上机中我们要思考的东西有很多,这也是真正在功能上为用户考虑,上机需要涉及到四个表的运用,需要判断的东西也就比登录窗体多一点,大家在参考的时候灵活运用,多加一些自己的想法

上机代码:

```vbnet
Private Sub Command1_Click()
    Dim Txtsql As String
    Dim Msgtext As String
    Dim Mrc As ADODB.Recordset
    Dim Mrc1 As ADODB.Recordset
    Dim mrc2 As ADODB.Recordset
    Dim mrc3 As ADODB.Recordset
    Dim Mrc4 As ADODB.Recordset
    
        'mrc连接student表
        Txtsql = "select * from student_info where cardno='" & Trim(txtcardNo.Text) & "'"
        Set Mrc = ExecuteSQL(Txtsql, Msgtext)
    
        'mrc1连接online表
        Txtsql = "select * from online_info where cardno='" & Trim(txtcardNo.Text) & "'"
        Set Mrc1 = ExecuteSQL(Txtsql, Msgtext)
    
        'mrc2连接line表
        Txtsql = "select * from line_info where cardno='" & Trim(txtcardNo.Text) & "'"
        Set mrc2 = ExecuteSQL(Txtsql, Msgtext)
        
        'mrc3连接basicdata表
        Txtsql = "select * from basicdata_info"
        Set mrc3 = ExecuteSQL(Txtsql, Msgtext)
               
        If Trim(txtcardNo.Text) = "" Then
            MsgBox "卡号不能为空!", 48, "警告"
            txtcardNo.SetFocus
            Exit Sub
        End If
        
        If Not IsNumeric(Trim(txtcardNo.Text)) Then
            MsgBox "请输入数字!", 48, "警告"
            txtcardNo.Text = ""
            txtcardNo.SetFocus
            Exit Sub
        End If
        
        If Mrc.EOF = True Then
           MsgBox "此卡未注册", 0 + 48, "系统提示"
           txtcardNo.SetFocus
           txtcardNo.Text = ""
            Exit Sub
        End If
        
        If Val(Mrc.Fields(7)) < Val(mrc3.Fields(5)) Then
            MsgBox "余额不足,请先充值!", 48, "警告"
            txtcardNo.SetFocus
            Exit Sub
        End If
                
         If Mrc1.EOF = False Then
            MsgBox "此卡正在上机,不能重复登录!", 48, "警告"
            
            lblOffDate.Text = Mrc1.Fields(7)
        Exit Sub
        Else
            '更新Online_info表
            With Mrc1
                .AddNew
                .Fields(0) = Trim(txtcardNo.Text)
                .Fields(1) = Trim(txtType.Text)
                .Fields(2) = Trim(txtsid.Text)
                .Fields(3) = Trim(txtname.Text)
                .Fields(4) = Trim(txtdepe.Text)
                .Fields(5) = Trim(txtSex.Text)
                .Fields(6) = Trim(lblOnDate.Text)
                .Fields(7) = Trim(lblOffDate.Text)
                .Fields(8) = VBA.Environ("computername")
                .Fields(9) = Now
                .Update
            End With
            
            '更新line_info表
            With mrc2
               .AddNew
               .Fields(1) = Trim(txtcardNo.Text)
               .Fields(2) = Trim(txtsid.Text)
               .Fields(3) = Trim(txtname.Text)
               .Fields(4) = Trim(txtdepe.Text)
               .Fields(5) = Trim(txtSex.Text)
               .Fields(6) = lblOnDate.Text
               .Fields(7) = Format(lblOnTime.Text, "yyyy-mm-dd")
               .Fields(8) = Null
               .Fields(9) = Null
               .Fields(10) = Null
               .Fields(11) = "0.0"
               .Fields(12) = Mrc.Fields(7)
               .Fields(13) = "正常上机"
               .Fields(14) = VBA.Environ("computername")
               .Update
            End With
        End If
                If Mrc.EOF = False Then
             MsgBox "上机成功"
            txtsid.Text = Mrc.Fields(1)
            txtname.Text = Mrc.Fields(2)
            txtSex.Text = Mrc.Fields(3)
            txtdepe.Text = Mrc.Fields(4)
            txtType.Text = Mrc.Fields(14)
            lblOnDate.Text = Format(Date, "yyyy-mm-dd")
            lblOffDate.Text = Time
            lblbalance.Text = Mrc.Fields(7)
             
        End If
        Txtsql = "select * from online_info"
        Set Mrc4 = ExecuteSQL(Txtsql, Msgtext)
       Label16.Caption = "当前上机人数:" & Mrc4.RecordCount     
End Sub
           

继续阅读