机房收费系统之上机

流程图

代码展现

'判断是否添加卡号
    If (txtcardNo = "") Then
        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "提示"
        txtcardNo.SetFocus
        Exit Sub
    End If
     '判断卡号是否为数字
    If Not IsNumeric(txtcardNo.Text) Then
        MsgBox "卡号请输入数字!", vbOKOnly + vbExclamation, "提示"
        txtcardNo.Text = ""
        txtcardNo.SetFocus
        Exit Sub
    End If
    '判断此卡是否注册
      txtSQL = "select * from student_Info where cardno = '" & txtcardNo.Text & "'"
      Set mrcStu = ExecuteSQL(txtSQL, MsgText)
      If mrcStu.EOF Then
            MsgBox "此卡不存在或已停用!", vbOKOnly + vbExclamation, "提示"
            txtcardNo.Text = ""
            txtcardNo.SetFocus
            mrcStu.Close
            Exit Sub
      End If
      '判断此卡是否使用
       txtSQL = "select * from student_info where status='" & "使用" & "' and cardno='" & txtcardNo.Text & "'"
        Set mrcStu = ExecuteSQL(txtSQL, MsgText)
        If mrcStu.EOF Then
            MsgBox "此卡不使用!", vbOKOnly + vbExclamation, "提示"
            txtcardNo.Text = ""
            txtcardNo.SetFocus
            mrcStu.Close
            Exit Sub
      End If
     '判断余额情况
      txtSQL = "select * from BasicData_Info"
      Set mrc = ExecuteSQL(txtSQL, MsgText)
      
      txtSQL = "select * from student_Info where cardno = '" & txtcardNo.Text & "'"
      Set mrcStu = ExecuteSQL(txtSQL, MsgText)
      If Val(mrcStu.Fields(7)) < Val(mrc.Fields(5)) Then
          MsgBox "余额不足,请充值后再上机", vbOKOnly + vbExclamation, "提示"
          txtcardNo.Text = ""
          txtcardNo.SetFocus
          mrcStu.Close
          Exit Sub
       End If

      '判断卡号是否上机
        txtSQL = "select * from OnLine_Info where cardno='" & txtcardNo.Text & "'"
        Set mrcOn = ExecuteSQL(txtSQL, MsgText)
        If Not mrcOn.EOF Then
                MsgBox "此卡正在上机!", vbOKOnly + vbExclamation, "提示"
                txtStudentNO.Text = Trim(mrcOn.Fields(2))
                txtDept.Text = Trim(mrcOn.Fields(4))
                txtType.Text = Trim(mrcOn.Fields(1))
                txtName.Text = Trim(mrcOn.Fields(2))
                txtSex.Text = Trim(mrcOn.Fields(3))
                Label12.Visible = True
                txtOnDate.Text = Date
                txtOnTime.Text = Time
                'txtBalance.Text = Trim(mrcOn.Fields(7))
                txtOffDate.Text = ""
                txtOffTime.Text = ""
                txtCTime.Text = ""
                txtCTime.Text = ""
                txtCMoney.Text = ""
                mrcOn.Update
                mrcOn.Close
                Exit Sub
        Else
          
                txtSQL = "select * from student_info where cardno='" & txtcardNo.Text & "'"
                Set mrcStu = ExecuteSQL(txtSQL, MsgText)
                '将数据库总中的数据显示在文本框中
                'txtCardNo.Text = Trim(mrc.Fields(0))
                txtDept.Text = Trim(mrcStu.Fields(4))
                txtType.Text = Trim(mrcStu.Fields(14))
                txtStudentNO.Text = Trim(mrcStu.Fields(1))
                txtName.Text = Trim(mrcStu.Fields(2))
                txtSex.Text = Trim(mrcStu.Fields(3))
                Label12.Visible = True
                txtOnDate.Text = Date
                txtOnTime.Text = Time
                txtBalance.Text = Trim(mrcStu.Fields(7))
                    
                
                '更新online表
                'Set mrc = New ADODB.Recordset
                    
                txtSQL = "select * from OnLine_info"
                Set mrcOn = ExecuteSQL(txtSQL, MsgText)
                mrcOn.AddNew
                
                mrcOn.Fields(0) = Trim(txtcardNo.Text)
                mrcOn.Fields(1) = Trim(txtType.Text)
                mrcOn.Fields(2) = Trim(txtStudentNO.Text)
                mrcOn.Fields(3) = Trim(txtName.Text)
                mrcOn.Fields(4) = Trim(txtDept.Text)
                mrcOn.Fields(5) = Trim(txtSex.Text)
                mrcOn.Fields(6) = Trim(txtOnDate.Text)
                mrcOn.Fields(7) = Trim(txtOnTime.Text)
                mrcOn.Fields(8) =    Trim(VBA.Environ("computername"))  '将计算机名同步到数据库的相应表格中
                mrcOn.Fields(9) = Date
              
                mrcOn.Update
                mrcOn.Close
               
                '更新line表
                txtSQL = "select * from Line_info"
                Set mrcline = ExecuteSQL(txtSQL, MsgText)
                mrcline.AddNew
                mrcline.Fields(1) = Trim(txtcardNo.Text)

               mrcline.Fields(2) = Trim(txtStudentNO.Text)
               mrcline.Fields(3) = Trim(txtName.Text)
               mrcline.Fields(4) = Trim(txtDept.Text)
               mrcline.Fields(5) = Trim(txtSex.Text)
               mrcline.Fields(6) = Trim(txtOnDate.Text)
               mrcline.Fields(7) = Trim(txtOnTime.Text)
               mrcline.Fields(14) =           Trim(VBA.Environ("computername"))  '将计算机名同步到数据库的相应表格中
                '显示正在上机的人数
                txtSQL = "select count(*) from OnLine_info "
                Set mrcOn = ExecuteSQL(txtSQL, MsgText)
                    
                lblPeople.Caption = Trim(mrcOn.Fields(0))
                    
                mrcOn.Close
'
End If

  PS:此处要注意更新两个表,并且将窗体中“当前上机人数+1”

总结

        通过上机让我注意到软件的逻辑思维,不要只是做到感觉没有问题,而是要进入数据库去确认,若是数据库没有更新,这个时候就要看看自己是不是出现了逻辑错误,此时用断点+逐语句调试会更好一点,可以更好的发现所写代码中那些语句有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值