机房收费系统-上下机

        一、上机流程

     

      部分代码展示

  If Not Testtxt(txtCardNo.Text) Then
     MsgBox "请您填写您的账号信息", vbOKOnly + vbExclamation, "警告"    '判断输入是否为空
     txtCardNo.SetFocus
   Exit Sub
  End If
   txtsql = "select * from student_Info where cardno='" & Trim(txtCardNo.Text) & "'and status='" & "使用" & "'"
     Set mrc = ExecuteSQL(txtsql, msgtext)
    If mrc.EOF Then
      MsgBox "该账号不存在", vbOKOnly + vbExclamation, "警告"       '判断是否存在该账号
      txtCardNo = ""
      txtCardNo.SetFocus
   Else
   
      txtsql2 = "select * from OnLine_Info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc2 = ExecuteSQL(txtsql2, msgtext)
        If mrc2.EOF = False Then
         MsgBox "该账号正在上机", vbOKOnly + vbExclamation, "警告"   '判断是否正在上机状态
         txtCardNo = ""
         txtCardNo.SetFocus
    Else
       
       txtsql3 = "select * from BasicData_Info"
       Set mrc3 = ExecuteSQL(txtsql3, msgtext)
        If Val(mrc.Fields(7)) < Val(mrc3.Fields(5)) Then   '此处代表余额小于设定的最小的上机金额,
        '如果只是小于一个具体数字的话会导致最低金额改动时,此处的约束无效
        MsgBox "余额不足,请先充值", vbOKOnly + vbExclamation, "提示"
        txtCardNo = ""

        二、下机流程

      重要部分代码展示

     CTime = DateDiff("n", mrc1.Fields(9), Format(Now(), "yyyy-mm-dd hh:mm:ss"))
        txtCTime.Text = Val(CTime)     '通过使用DateDiff函数对上机时间进行计算,并在此转化为分钟
     
     txtsql2 = "select * from BasicData_Info"
     Set mrc2 = ExecuteSQL(txtsql2, msgtext2)
     
     If CTime < mrc2.Fields(4) Then   '上机时间小于准备时间,不计算金额
      consume = 0
       
     Else
        
        
    txtsql = "select * from student_Info where cardno='" & (txtCardNo.Text) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)  '消费金额=消费时间*单位费用(不同用户类型分别计算)
                                           '利用Round函数进行四舍五入取整
        If mrc.Fields(14) = "固定用户" Then
             consume = Round(((CTime - mrc2.Fields(4)) / 60) * mrc2.Fields(0), 0)
        Else
             consume = Round(((CTime - mrc2.Fields(4)) / 60) * mrc2.Fields(1), 0)
        End If
            txtCMoney.Text = Int(consume)
        End If
            
            Dim yue As Integer
            yue = Val(mrc.Fields(7) - consume)   '卡号余额=账户余额-消费额度
            txtBaLance.Text = yue
            
            mrc.Fields(7) = txtBaLance.Text
            mrc.Update
            mrc.Close
            mrc2.Close
        End If

猜你喜欢

转载自blog.csdn.net/weixin_39332529/article/details/81145795