机房下机是一个比较复杂的过程,同样涉及多个数据表间的数据交换,同时还涉及到时间的计算及金钱的计算。特别是金钱的计算,是整个机房系统的中的重中之重,需要仔细研究,可以肯定的是没有一个网吧希望有一个算不准钱的机房系统。
这是我下机的数据流程图。
这是我的下机代码:
判断上机时间
txtSQL = "select * from Line_Info where cardno ='" & Trim(TxtCID.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
txtSQL = "select * from BasicData_Info where head = '" & UserName & "'"
Set mrc3 = ExecuteSQL(txtSQL, MsgText)
valuedate = DateDiff("n", mrc!ondate, Date)
valuetime = DateDiff("n", mrc!ontime, Time)
valuetime = valuedate + valuetime
判断金额单位
If mrc2!Type = "固定用户" Then
pay = Format(mrc3.Fields(0) / 60, "0.0")
pay = Format(pay * valuetime, "0.0")
Else
pay = Format(mrc3.Fields(1) / 60, "0.0")
pay = Format(pay * valuetime, "0.0")
End If
给人机界面回执信息
Txtoffdate.Text = Date
Txtofftime.Text = Time
TxtWtime.Text = valuetime
Text1.Text = pay
下机表添加新纪录及学生表金额更新
mrc1.AddNew
mrc1.Fields(1) = mrc!cardno
mrc1.Fields(2) = mrc!studentNo
mrc1.Fields(3) = mrc!studentName
mrc1.Fields(4) = mrc!Department
mrc1.Fields(5) = mrc!sex
mrc1.Fields(6) = mrc!ondate
mrc1.Fields(7) = mrc!ontime
mrc1.Fields(8) = Date
mrc1.Fields(9) = Time
mrc1.Fields(10) = valuetime
mrc1.Fields(11) = pay
mrc1.Fields(12) = mrc2!cash - pay
mrc1.Fields(13) = "正常下机"
mrc1.Fields(14) = mrc!computer
mrc1.Update
mrc2!cash = mrc1.Fields(12)
mrc2.Update
上机表记录更新
txtSQL = "delete from OnLine_Info where cardno = '" & Trim(TxtCID.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
MsgBox "已成功下机", vbOKOnly + vbExclamation, "提示"
以上是我对于这次机房下机的认识,如有不足请斧正,此外现在正在进行动态金额更新及下机的尝试,希望能够从中有所收获。