机房收费系统——下机

流程图

这里写图片描述

代码展示

-下机结算

'下机结算:时间,金额(n为分钟);显示下机数据

txtSQLS = "select * from student_Info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQLS, Msgtext)

txtSQLB = "select * from BasicData_Info"
Set mrc2 = ExecuteSQL(txtSQLB, Msgtext)

txtdate = DateDiff("n", lblOnDate, lblOffDate)
txttime = DateDiff("n", lblOnTime, lblOffTime)
lblCTime.Text = Int(txtdate) + Int(txttime)     '显示消费时间
intconsumetime = lblCTime.Text

'判断消费时间<准备时间
If intconsumetime < mrc2.Fields(4) Then          
     lblCMoney.Text = "0"                       '消费金额=0
     lblCash.Text = Trim(mrc1.Fields(7))        '余额=余额-消费金额

 Else   

      '判断消费时间小于最小上机时间时消费金额为1
       If intconsumetime < mrc2!leastTime And intconsumetime > mrc2.Fields(4) Then                   
           lblCMoney.Text = "1"                 '消费金额=1
           lblCash.Text = Trim(mrc1.Fields(7)) - Trim(lblCMoney.Text)

       Else

           '判断临时用户的消费金额
           If mrc.Fields(1) = "临时用户" Then
               lblCMoney.Text = (Int(intconsumetime / 60) + 1) * Trim(mrc2.Fields(1))
               lblCash.Text = Trim(mrc1.Fields(7)) - Trim(lblCMoney.Text)

           Else

               '判断固定用户的消费金额
                lblCMoney.Text = (Int(intconsumetime / 60) + 1) * Trim(mrc2.Fields(0))
                lblCash.Text = Trim(mrc1.Fields(7)) - Trim(lblCMoney.Text)

           End If
       End If
 End If

-余额不足,请先充值

If Val(lblCash.Text) < 0 Then
        MsgBox "余额不足,下机失败,请先充值!", vbonly + vbExclamation, "提示"

        '显示充值窗体
        frmOpRecharge.Show   
        SetParent frmOpRecharge.hWnd, Picture1.hWnd

        '将下机卡号赋值给充值窗体卡号
        frmOpRecharge.txtCardNo.Text = txtCardNo.Text
        Exit Sub
Else
     MsgBox "下机成功,欢迎下次再来!", vbonly + vbExclamation, "提示"

-利用timer控件实时更新上机人数

Private Sub Timer1_Timer()     '利用timer控件实时更新上机人数

    Dim txtSQL As String
    Dim Msgtext As String
    Dim mrc As ADODB.Recordset

    Label12.Caption = Format(Now, "hh:mm:ss")   '获取当前时间

    txtSQL = "select * from Online_Info "
    Set mrc = ExecuteSQL(txtSQL, Msgtext)
    Label16.Caption = mrc.RecordCount
    mrc.Close

End Sub

-循环清空内容

'循环清空内容
 Dim ctr1 As Control
     For Each ctr1 In Me.Controls

     If TypeOf ctr1 Is TextBox Then
        ctr1.Text = ""
     End If

     Next

完整代码展示

Private Sub cmdOffLine_Click()

    Dim txtSQLB As String
    Dim txtSQLS As String
    Dim txtSQLO As String
    Dim txtSQLL As String
    Dim Msgtext As String
    Dim mrc As ADODB.Recordset     'online 表
    Dim mrc1 As ADODB.Recordset     'student表
    Dim mrc2 As ADODB.Recordset    'BasicData 表
    Dim mrc3 As ADODB.Recordset

    Dim txtdate As String
    Dim txttime As String
    Dim intconsumetime As String  '消费时间

    '输入学号

    If txtCardNo.Text = "" Then
            MsgBox "请输入学号!", vbOKOnly + vbExclamation, "警告"
            Exit Sub
    Else
    '判断该用户是否上机

     txtSQLO = "select * from OnLine_Info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc = ExecuteSQL(txtSQLO, Msgtext)

        If mrc.EOF = True Then
                MsgBox "该卡号未上机,请重新确认", vbOKOnly + vbExclamation, "警告"
                txtCardNo.Text = ""
                txtCardNo.SetFocus
                Exit Sub

        Else
        '显示上机帐号数据

        txtCardNo.Text = mrc!cardno
        lbltype.Text = mrc!cardtype
        lblSID.Text = mrc!studentNo
        lblName.Text = mrc!studentName
        lblDept.Text = mrc!Department
        lblSex.Text = mrc!sex
        lblOnDate.Text = Format(Trim(mrc.Fields(6)), "yyyy-mm-dd")
        lblOnTime.Text = Format(Trim(mrc.Fields(7)), "hh:mm:ss")
        lblOffDate.Text = Format(Date, "yyyy-mm-dd")
        lblOffTime.Text = Format(Time, "hh:mm:ss")


        '下机结算:时间,金额(n为分钟);显示下机数据
        '......见上

        End If
   End If


   '余额不足,下机失败,请先充值!
   '......见上

    Else

    MsgBox "下机成功,欢迎下次再来!", vbonly + vbExclamation, "提示"


    '更新上机记录

    mrc.Delete
    mrc.Update
    mrc.Close

    '更新历史上机记录

        txtSQLL = "select * from Line_Info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc3 = ExecuteSQL(txtSQLL, Msgtext)

            mrc3.AddNew
            mrc3.Fields(1) = Trim(txtCardNo.Text)
            mrc3.Fields(2) = Trim(lblSID.Text)
            mrc3.Fields(3) = Trim(lblName.Text)
            mrc3.Fields(4) = Trim(lblDept.Text)
            mrc3.Fields(5) = Trim(lblSex.Text)
            mrc3.Fields(6) = Trim(lblOnDate.Text)
            mrc3.Fields(7) = Trim(lblOnTime.Text)
            mrc3.Fields(8) = Trim(lblOffDate.Text)
            mrc3.Fields(9) = Trim(lblOffTime.Text)
            mrc3.Fields(10) = Trim(lblCTime.Text)
            mrc3.Fields(11) = Trim(lblCMoney.Text)
            mrc3.Fields(12) = Val(lblCash.Text) '把字符串型换成数值型
            mrc3.Fields(13) = "正常上机"
            mrc3.Fields(14) = VBA.Environ("computername")
            mrc3.Update
            mrc3.Close


       '更新学生表学生信息

            mrc1.Fields(7) = Trim(lblCash.Text)
            mrc1.Fields(9) = UserName
            mrc1.Fields(10) = "使用"
            mrc1.Fields(11) = "已结账"
            mrc1.Fields(12) = Date
            mrc1.Fields(13) = Time
            mrc1.Update
            mrc1.Close

    End If

     '循环清空内容
     '......见上

End Sub

反思

1.敲代码不能停
下机窗体做了很久了,总是做做停停,思路连接不上,感觉难的不行,其实做完之后无非这点代码,只要每天完成一点,问题都会解决。
2.困难像弹簧
困难像弹簧,你弱它就强。任何任务没有完成之前,切忌将困难放大化。没有多大的困难是我们克服不了的。
3.套路
先把逻辑弄清楚,再写代码,再解决问题,再优化体验。这是适用于我的套路,每每跳着完成,我都会方寸大乱。

以此自省!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值