有了上机的思路,下机当然也就很简单了,不过总是要比别人多想一步,这样你就能够比别人更加的优秀。
下机的流程图
下机的注意事项:
(0)下机的日期和日间要是现在的时间:
txtontime.Text = Trim(mrc3.Fields(7))
txtdowndate.Text = Format(Now(), "yyyy-mm-dd")
txtdowntime.Text = Format(Now, "HH:MM:SS")
time = DateDiff("n", Trim(txtontime.Text), Trim(txtdowntime.Text))
(1)计算消费余额:消费时间*单位费用(分级别区别收费)
'判断消费金额是多少
Dim All As Single '消费时间
Dim Money As Integer '最终金额
Dim Rate As Single ' 固定用户单位时间的金额
All = txtspendtime.Text '消费时间
Rate = Trim(mrc1.Fields(0)) '一小时多少钱
rate1 = Trim(mrc1.Fields(1))
If Trim(txtspendtime.Text) < nomoneyTime Then
txtspendtime.Text = "0"
Money = 0
Else
txtsql = "select * from student_Info where cardno='" & (txtcardno.Text) & "'"
Set mrc = executeSQL(txtsql, msgtext) '消费金额=消费时间*单位费用(不同用户类型分别计算)
'利用Round函数进行四舍五入取整
If mrc.Fields(14) = "固定用户" Then
Money = Round(((Money - mrc1.Fields(4)) / 60) * mrc1.Fields(0), 0)
Else
Money = Round(((Money - mrc1.Fields(4)) / 60) * mrc1.Fields(1), 0)
End If
txtreatmoney.Text = Int(Money)
End If
txtreatmoney.Text = Money
(2)计算余额:
'余额减去消费金额等于新的余额
txtsql = "select * from student_Info where cardno = '" & txtcardno.Text & "'"
Set mrc = executeSQL(txtsql, msgtext)
txtreatmoney.Text = Trim(mrc.Fields(7)) - Money
(3)更新
'将数据更新到line表中
txtsql3 = "select * from line_Info"
Set mrc = executeSQL(txtsql3, msgtext3)
While (mrc3.EOF = False)
mrc3.MoveNext
Wend
mrc.AddNew
mrc.Fields(1) = Trim(txtcardno.Text)
mrc.Fields(2) = Trim(txtstuno.Text)
mrc.Fields(3) = Trim(txtname.Text)
mrc.Fields(4) = Trim(txtmajor.Text)
mrc.Fields(5) = Trim(txtsex.Text)
mrc.Fields(6) = Trim(txtondate.Text)
mrc.Fields(7) = Trim(txtontime.Text)
mrc.Fields(8) = Trim(txtdowndate.Text)
mrc.Fields(9) = Trim(txtdowntime.Text)
mrc.Fields(10) = Trim(txtspendtime.Text)
mrc.Fields(11) = Trim(txtspendtime.Text)
mrc.Fields(12) = Trim(txtreatmoney.Text)
mrc.Fields(13) = "正常下机"
mrc.Fields(14) = Trim(labelPEName.Caption)
mrc.Update
mrc.Close
'删除记录
txtsql2 = "delete from OnLine_Info where cardno = '" & txtcardno.Text & "'"
Set mrc2 = executeSQL(txtsql2, msgtext2)
'刷新当前在线数量
txtsql2 = "select count(*) from OnLine_Info"
Set mrc2 = executeSQL(txtsql2, msgtext2)
Label15.Caption = Trim(mrc2.Fields(0))