第一次机房收费系统--下机

前言

机房进行了很长时间了,下面总结一下下机部分,还希望和大家共勉!微笑


流程图

理清思路很重要,只有思路清晰了,下面才能顺利地进行!


知识点

1.更新line_info表中的信息

            '更新line_info表中的信息,下机日期,时间,消费时间,消费金额,剩余金额,状态
            txtSQL = "select * from line_info where cardno='" & txtcardno.Text & "'"
            Set mrc = ExecuteSQL(txtSQL, MsgText)
            mrc.Fields(8) = Date
            mrc.Fields(9) = Time
            mrc.Fields(10) = Trim(txttime.Text)
            mrc.Fields(11) = Trim(txtconsume.Text)
            mrc.Fields(12) = Trim(txtcash.Text)
            mrc.Fields(13) = "正常下机"


2.删除online_info表中的信息

                    txtSQL = "delete from online_info where cardno='" & txtcardno.Text & "'"

3.计算消费时间和金额

Dim w1 As Long
Dim w2 As Long
Dim a1 As Long
Dim a2 As Long
Dim x As Long
Dim w As Long
Dim a3 As String
Dim a4 As String
Dim money As Currency

    txtOffLinedate.Text = Date
    txtOffLinetime.Text = Time
'    计算消费时间和金额
'    固定用户一小时费用为 w1,临时用户一小时费用为w2,至少上机时间为t1,准备时间为t2,最少金额为w,
'    上机时间为time1,下机时间为time2,输出的钱为money,x为递增单位时间
'    准备时间不收钱,没有达到最少上机时间,收取金额为最少金额,达到最少上机时间后,按时间计算


   txttime.Text = DateDiff("n", txtOnLinetime, txtOffLinetime)    '计算消费时间

没有达到准备上机时间

'    没有达到准备上机时间
    If Val(txttime.Text) < a2 Then
        MsgBox "没有达到上机准备时间,不收取费用!", 48, "提示"
        txtSQL = "delete from online_info where cardno='" & txtcardno.Text & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
            txtSQL = "select * from online_info"
            Set mrc3 = ExecuteSQL(txtSQL, MsgText)
            money = 0
            txtconsume.Text = money
            txtSQL = "select * from student_info"
            Set mrc1 = ExecuteSQL(txtSQL, MsgText)
            mrc1.Fields(7) = Val(txtcash.Text) - money
            txtcash.Text = mrc1.Fields(7)
            Label16.Caption = mrc3.RecordCount    '显示上机人数
        Exit Sub

没有达到最少上机时间

'        没有达到最少上机时间
        If Val(txttime.Text) < a1 + a2 Then
            money = Trim(mrc7.Fields(5))      '消费金额为最少金额
            txtconsume.Text = money
            txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='使用'"
            Set mrc1 = ExecuteSQL(txtSQL, MsgText)
            mrc1.Fields(7) = Trim(txtcash.Text) - money
            txtcash.Text = mrc1.Fields(7)
            txtSQL = "delete from online_info where cardno='" & txtcardno.Text & "'"
            Set mrc = ExecuteSQL(txtSQL, MsgText)

达到最少上机时间

'            达到最少上机时间了
'            这里又分为固定用户和临时用户
            Select Case Trim(txttype.Text)
                Case "固定用户"
                    txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='使用'"
                    Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    money = Round(Val(txttime.Text) / x * w1)
                    txtconsume.Text = money
                    mrc1.Fields(7) = Val(txtcash.Text) - money
                    txtcash.Text = mrc1.Fields(7)
                    mrc1.Update
                    mrc1.Close
                    txtSQL = "delete from online_info where cardno='" & txtcardno.Text & "'"
                    Set mrc = ExecuteSQL(txtSQL, MsgText)
                Case "临时用户"
                    money = Round(Val(txttime.Text) / x * w2)
                    txtconsume.Text = money
                    txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'"
                    Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    mrc1.Fields(7) = Val(txtcash.Text) - money
                    
                    txtcash.Text = mrc1.Fields(7)
                    txtSQL = "delete from online_info where cardno='" & txtcardno.Text & "'"
            End Select

4.用到的数据表

basicdata_info表:用里面的基础数据

student_info表:该表中有用户的基本信息

line_info表:下机信息要同步到这个表中

online_info表:该表用于存放正在上机的卡的信息,所以下机时要删除里面的数据


总结

下机相对于上机来说,涉及到了计算时间和消费金额的问题,开始的时候不知道怎么处理,慢慢发现需要定义一些变量用来存放数据,这样就可以调用了。同时,涉及到的表也相对多一些,但是只有理清这些表之间的关系,就没有问题的!


结语

每当接触一个新鲜事物都会觉得很难,就像米老师说的“改变的过程是痛苦的”,但是我们不要害怕,勇往直前,小伙伴,一起加油!


未完待续O(∩_∩)O~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值