第一次【机房收费系统】——下机

前言

 不知上篇的上机大家懂了没?反正小编又要发干货,欢迎大家“抢购”,下机其实和上机大同小异,唯一的区别就是你得计算消费者消费了多长时间,花了多少钱,最后还剩多少钱。这和我们平时去网吧的套路差不多,只不过现在你变成了程序的缔造者,加油啊!
这里写图片描述

代码分享

Private Sub cmdOffline_Click()
    txtSQL = "select * from student_Info where cardno ='" & Trim(txtCardID.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)

    If mrc.EOF = True Then
        MsgBox "该卡号不存在,请先注册!", vbOKOnly + vbExclamation, "警告"
        txtCardID.SetFocus
        txtCardID = ""
        txtType.Text = ""
        txtStudentID.Text = ""
        txtName.Text = ""
        txtMajor.Text = ""
        txtSex.Text = ""
        txtOnlineDate.Text = ""
        txtOnlineTime.Text = ""
        txtOfflineDate.Text = ""
        txtOfflineTime.Text = ""
        txtConsumeTime.Text = ""
        txtConsumeMoney.Text = ""
        txtRemainingSum.Text = ""

    Exit Sub
    Else

    txtSQL = "select * from OnLine_Info where cardno='" & Trim(txtCardID.Text) & "'"
    Set mrc1 = ExecuteSQL(txtSQL, MsgText)

    If mrc1.EOF = True Then
        MsgBox "该卡号没有上机,不能进行下机处理", vbOKOnly + vbExclamation, "警告"
        txtCardID.SetFocus
        txtCardID = ""
        txtType.Text = ""
        txtStudentID.Text = ""
        txtName.Text = ""
        txtMajor.Text = ""
        txtSex.Text = ""
        txtOnlineDate.Text = ""
        txtOnlineTime.Text = ""
        txtOfflineDate.Text = ""
        txtOfflineTime.Text = ""
        txtConsumeTime.Text = ""
        txtConsumeMoney.Text = ""
        txtRemainingSum.Text = ""
    Exit Sub
    Else

        txtCardID.Text = mrc.Fields(0)
        txtType.Text = mrc1.Fields(1)
        txtStudentID.Text = mrc1.Fields(2)
        txtName.Text = mrc1.Fields(3)
        txtMajor.Text = mrc1.Fields(4)
        txtSex.Text = mrc1.Fields(5)
        txtOnlineDate.Text = mrc1.Fields(6)
        txtOnlineTime.Text = mrc1.Fields(7)
        txtOfflineDate.Text = Date
        txtOfflineTime.Text = Time
        consumetime = Abs(Val(DateDiff("n", Trim(mrc1!Date), Now)))
        txtConsumeTime.Text = consumetime
        mrc1.Update
      End If
  End If

    txtSQL = "select * from BasicData_Info "
    Set mrc2 = ExecuteSQL(txtSQL, MsgText)

    '判断消费时间是否小于准备时间
    If consumetime < Trim(mrc2.Fields(4)) Then
        txtConsumeMoney = "0"
        txtRemainingSum.Text = mrc.Fields(7)
    Else

    '判断消费时间是否小于至少上机时间
    If consumetime < Val(mrc2.Fields(3)) Then
        txtConsumeMoney.Text = "2"
        txtRemainingSum.Text = Val(mrc.Fields(7)) - Val(txtConsumeMoney.Text)
    Else

    If mrc.Fields(14) = "固定用户" Then
        txtConsumeMoney.Text = Round(mrc2.Fields(0) / 60 * Trim(consumetime))
    Else
        txtConsumeMoney.Text = Round(mrc2.Fields(1) / 60 * Trim(consumetime))

        txtRemainingSum.Text = Val(mrc.Fields(7)) - Val(txtConsumeMoney.Text)
        mrc.Fields(7) = Val(txtRemainingSum.Text)
        mrc.Update

    txtSQL = "delete from OnLine_Info where cardno='" & Trim(txtCardID.Text) & "'"
    Set mrc1 = ExecuteSQL(txtSQL, MsgText)

    txtSQL = "select * from Line_Info where cardno='" & Trim(txtCardID.Text) & "'"
    Set mrc3 = ExecuteSQL(txtSQL, MsgText)

    mrc3.AddNew
    mrc3.Fields(1) = Trim(txtCardID.Text)
    mrc3.Fields(2) = Trim(txtStudentID.Text)
    mrc3.Fields(3) = Trim(txtName.Text)
    mrc3.Fields(4) = Trim(txtMajor.Text)
    mrc3.Fields(5) = Trim(txtSex.Text)
    mrc3.Fields(6) = Trim(txtOnlineDate.Text)
    mrc3.Fields(7) = Trim(txtOnlineTime.Text)
    mrc3.Fields(8) = Trim(txtOfflineDate.Text)
    mrc3.Fields(9) = Trim(txtOfflineTime.Text)
    mrc3.Fields(10) = Trim(txtConsumeTime.Text)
    mrc3.Fields(11) = Trim(txtConsumeMoney.Text)
    mrc3.Fields(12) = Trim(txtRemainingSum.Text)
    mrc3.Fields(13) = "正常下机"
    mrc3.Update
    mrc3.Close
        MsgBox "下机成功!", vbOKOnly + vbInformation, "提示"
        End If
      End If
    End If

End Sub

小结

 嘻嘻嘻,代码还算整齐哈,不管你认为是不是,反正我觉得是这样的,不知从什么时候开始有了强迫症,虽然敲的时候麻烦一点,但是给人的感觉很不一样,建议你们也要把代码码正了呦~我也得多加规范!

猜你喜欢

转载自blog.csdn.net/Ellen5203/article/details/82290540