机房收费系统之上下机

来源:互联网 发布:html label js 编辑:程序博客网 时间:2024/06/06 00:35

前言:

原文经过更改,将上下机记录分别更新到line表改为,上下机一起更新到line表)


好几天的上下机战争已经结束了。感觉非常轻松并有小小滴成就感。对自己的要求不高,具体的知识大概知道就行了。初步要求就是窗体能够运行。每个人都有每个人的目标嘛。不需要看到别人学的有多好或者自己理解的东西不够多,只要有收获,不抵触,就很好了。


上机流程图展示:



代码展示:

txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'"    Set mrc = ExecuteSQL(txtSQL, MsgText)                    txtSQL1 = "select * from basicdata_info"    Set mrc1 = ExecuteSQL(txtSQL1, MsgText)        txtSQL2 = "select * from line_info"    Set mrc2 = ExecuteSQL(txtSQL2, MsgText)           txtSQL3 = "select * from online_info"    Set mrc3 = ExecuteSQL(txtSQL3, MsgText)        lblnumber.Caption = mrc3.RecordCount            mrc3.Close    '判空         If Trim(txtcardno.Text = "") Then        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告"        txtcardno.SetFocus     Else            If Not IsNumeric(txtcardno.Text) Then                    MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"            Exit Sub            txtcardno.SetFocus        Else             '判断卡号是否存在                    If mrc.EOF Then                MsgBox "卡号不存在或已注销,请重新输入卡号!", vbOKOnly + vbExclamation, "警告"                txtcardno.SetFocus                txtcardno.Text = ""                txtstudentno.Text = ""                txtstudentname.Text = ""                txtsex.Text = ""                txtdepartment.Text = ""                txttype.Text = ""                txtcash.Text = ""                txtondate.Text = ""                txtontime.Text = ""                            Else                            '查询余额是否适合上机,余额小于基本数据,则强制下机,可以去充值。余额若大于基本数据,则可以上机。这里要判断用户类型                txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'"                Set mrc = ExecuteSQL(txtSQL, MsgText)                                txtSQL1 = "select * from basicdata_info"                Set mrc1 = ExecuteSQL(txtSQL1, MsgText)                   If Trim(mrc.Fields(7)) < Trim(mrc1.Fields(5)) Then                        MsgBox "余额不多了,请充值后再上机!", vbOKOnly + vbExclamation, "温馨提示"              '充值窗口弹出                                          Else                            txtSQL3 = "select * from online_info where cardno = '" & txtcardno.Text & "'"              Set mrc3 = ExecuteSQL(txtSQL3, MsgText)                            If mrc3.EOF = False Then                MsgBox "此卡正在上机!"                                                     '显示数据                            txtstudentno.Text = mrc3.Fields(2)                txtstudentname.Text = mrc3.Fields(3)                txtsex.Text = mrc3.Fields(5)                txtdepartment.Text = mrc3.Fields(4)                txttype.Text = mrc3.Fields(1)                txtcash.Text = mrc.Fields(7)                txtondate.Text = mrc3.Fields(6)                txtontime.Text = mrc3.Fields(7)                            Else                                txtstudentno.Text = mrc.Fields(1)                txtstudentname.Text = mrc.Fields(2)                txtsex.Text = mrc.Fields(3)                txtdepartment.Text = mrc.Fields(4)                txttype.Text = mrc.Fields(14)                txtcash.Text = mrc.Fields(7)                txtondate.Text = Date                txtontime.Text = Time                                '将记录添加到online表                                mrc3.AddNew                    mrc3.Fields(0) = Trim(txtcardno.Text)                    mrc3.Fields(1) = Trim(txttype.Text)                    mrc3.Fields(2) = Trim(txtstudentno.Text)                    mrc3.Fields(3) = Trim(txtstudentname.Text)                    mrc3.Fields(5) = Trim(txtsex.Text)                    mrc3.Fields(4) = Trim(txtdepartment.Text)                    mrc3.Fields(6) = Trim(txtondate.Text)                    mrc3.Fields(7) = Trim(txtontime.Text)                    mrc3.Fields(8) = ""                    mrc3.Fields(9) = Now                                        mrc3.Update                    mrc3.Close



下机流程图展示:



代码展示:



txtSQL = "select * from student_info"    Set mrc = ExecuteSQL(txtSQL, MsgText)                    txtSQL1 = "select * from basicdata_info"    Set mrc1 = ExecuteSQL(txtSQL1, MsgText)        txtSQL2 = "select * from line_info"    Set mrc2 = ExecuteSQL(txtSQL2, MsgText)           txtSQL3 = "select * from online_info"    Set mrc3 = ExecuteSQL(txtSQL3, MsgText)        '判空         If Trim(txtcardno.Text = "") Then        MsgBox "请输入下机卡号!", vbOKOnly + vbExclamation, "警告"        txtcardno.SetFocus     Else            If Not IsNumeric(txtcardno.Text) Then                    MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"            Exit Sub            txtcardno.SetFocus        Else             '判断卡号是否存在                 txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'"        Set mrc = ExecuteSQL(txtSQL, MsgText)            If mrc.EOF = True Then                MsgBox "该号未注册或已退卡,请输入有效卡号!", vbOKOnly + vbExclamation, "警告"                txtcardno.SetFocus                txtcardno.Text = ""            Else                        '判断有没有上机                            txtSQL = "select * from online_info where cardno = '" & txtcardno.Text & "'"                Set mrc3 = ExecuteSQL(txtSQL, MsgText)                    If mrc3.EOF = True Then                        MsgBox "该号没有上机!", 48, "提示"                        txtcardno.Text = ""                        Exit Sub                    Else                                    txtstudentno.Text = mrc3.Fields(2)                        txtstudentname.Text = mrc3.Fields(3)                        txtsex.Text = mrc3.Fields(5)                        txtdepartment.Text = mrc3.Fields(4)                        txttype.Text = mrc3.Fields(1)                        txtondate.Text = mrc3.Fields(6)                        txtontime.Text = mrc3.Fields(7)                        txtoffdate.Text = Date                        txtofftime.Text = Time                                                time1 = Trim(DateDiff("n", txtontime.Text, Time))                        time2 = Trim(DateDiff("n", txtondate.Text, Date))                                '获取基本数据                            txtSQL1 = "select * from basicdata_info"                Set mrc1 = ExecuteSQL(txtSQL1, MsgText)                                                                                '上机时间小于准备时间                    If Val(time1) + Val(time2) < mrc1.Fields(4) Then                        time3 = 0 & ""                    Else                                                        '否则是上机时间减去准备时间                        time3 = Val(time1) + Val(time2) - Val(mrc1.Fields(4))                                        End If                    '更新消费时间                    txtconsumetime.Text = Val(time3)                '用户消费金额(每小时的钱 ÷ 60分钟 * 消费分钟数                If mrc3.Fields(1) = "固定用户" Then                    txtconsume.Text = Int(mrc1.Fields(0) / 60 * Val(txtconsumetime.Text))                Else                    txtconsume.Text = Int(mrc1.Fields(1) / 60 * Val(txtconsumetime.Text))                    mrc1.Close                End If            '得到余额            txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'and status='" & "使用" & "'"            Set mrc = ExecuteSQL(txtSQL, MsgText)                txtcash.Text = Val(Trim(mrc.Fields(7)) - Val(txtconsume.Text))                mrc.Fields(7) = Val(txtcash.Text)                mrc.Update                mrc.Close                                              '添加下机记录line                    txtSQL = "select * from Line_Info "                    'where cardno= '" & Trim(txtcardno.Text) & "'and ondate='" & Trim(txtondate.Text) & "'and ontime='" & Trim(txtontime.Text) & "'"                          '增加上机记录                    Set mrc2 = ExecuteSQL(txtSQL, MsgText)                                        mrc2.AddNew                                    mrc2.Fields(1) = Trim(txtcardno.Text)                    mrc2.Fields(2) = Trim(txtstudentno.Text)                    mrc2.Fields(3) = Trim(txtstudentname.Text)                    mrc2.Fields(5) = Trim(txtsex.Text)                    mrc2.Fields(4) = Trim(txtdepartment.Text)                    mrc2.Fields(6) = Trim(txtondate.Text)                    mrc2.Fields(7) = Trim(txtontime.Text)                    mrc2.Fields(8) = Trim(txtoffdate)                    mrc2.Fields(9) = Trim(txtofftime)                    mrc2.Fields(10) = Trim(txtconsumetime)                    mrc2.Fields(11) = Trim(txtconsume)                    mrc2.Fields(12) = Trim(txtcash)                    mrc2.Fields(13) = "正常下机"                    mrc2.Fields(14) = ""                    mrc2.Update                    mrc2.Close                    mrc3.Delete                    mrc3.Close                    MsgBox "下机成功!", vbOKOnly, "厉害了"                                                txtcardno.Text = ""                        txtstudentno.Text = ""                        txtstudentname.Text = ""                        txtsex.Text = ""                        txtdepartment.Text = ""                        txttype.Text = ""                        txtcash.Text = ""                        txtondate.Text = ""                        txtontime.Text = ""                        txtoffdate.Text = ""                        txtofftime.Text = ""                        txtconsumetime.Text = ""                        txtconsume.Text = ""                                            End If                                        txtSQL = "select * from online_info"                    Set mrc3 = ExecuteSQL(txtSQL, MsgText)                    lblnumber.Caption = mrc3.RecordCount                    mrc3.Close




当然了过程不是一帆风顺的,但是也从中学到了知识

上下机对照流程图展示:




总结:

不要把困难想的那么难。就算自己解决不了又怎么样,咱上面有人~~~

当然了过程不是一帆风顺的,但是也从中学到了知识