您的位置:首页 > 其它

机房收费系统之上下机

2017-12-04 19:49 309 查看
前言:

原文经过更改,将上下机记录分别更新到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

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

上下机对照流程图展示:



总结:

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

当然了过程不是一帆风顺的,但是也从中学到了知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: