机房收费系统刚解决了一个组合查询的问题,接着又要放大招了——上下机。关于上下机的问题,可能是因为要考虑的东西太多的原因,觉得很是在最后实现这个功能比较好。要不让打击了自己的积极性,影响了后面的发挥就不好了。下面就说说,我对上下机的理解,虽然会有没有考虑到的地方,但是大致的理解还是有的。
1、因为在上机的时候,只要输入卡号就可以了,所以要有一个提示。可以用一个label框,在卡号的后面加上提示。
2、要判断卡号是否为空。
If Not testtxt(Text1(0).Text) Then
MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告"
Text1(0).SetFocus
Text1(0).Text = ""
Exit Sub
End If
3、判断卡号是否正确
'卡号添加的是否正确
txtsql = "select *from student_Info where cardno='" & Text1(0).Text & "'"
Set mrc = ExecuteSQL(txtsql, msgstring)
'在最后一行之前查看,卡号是否正确
If mrc.EOF Then '如果不正确,则给予警告,重新添加
MsgBox "此卡不存在或已停止使用", vbOKOnly + vbExclamation, "警告"
Text1(0).Text = ""
Text1(0).SetFocus
Exit Sub
End If
If Not mrc.EOF Then
a(0) = mrc.Fields(8)
a(1) = mrc.Fields(1)
End If
4、判断余额是否足够上机
'判断余额是否够消费
txtsql = "select * from basicdata_info"
Set mrc1 = ExecuteSQL(txtsql, msgstring)
If Not mrc.EOF Then
a(2) = mrc1.Fields(0)
a(3) = mrc1.Fields(1)
End If
If Trim(a(1)) = "固定用户" Then
If Val(a(0)) < Val(a(2)) Then
MsgBox "余额不足,请及时充值", vbOKOnly + vbExclamation, "警告"
Text1(0).Text = ""
Text1(0).SetFocus
Exit Sub
End If
End If
If Trim(a(1)) = "临时用户" Then
If Val(a(0)) < Val(a(2)) Then
MsgBox "余额不足,请及时充值", vbOKOnly + vbExclamation, "警告"
Text1(0).Text = ""
Text1(0).SetFocus
Exit Sub
End If
End If
5、判断输入卡号是否正在上机
'连接上机数据库
txtsql = "select *from online_Info where cardno='" & Text1(0).Text & "'"
Set mrcc = ExecuteSQL(txtsql, msgstring)
'判断该卡号是否正在上机
If Not mrcc.EOF Then
MsgBox "此卡正在上机", vbOKOnly + vbExclamation, "警告"
'如果正在上机把记录中的数据添加到窗体上
Text1(0).Text = mrcc.Fields(0)
For i = 1 To 7
Text1(i).Text = mrcc.Fields(i)
Next i
Text2(4).Text = a(0)
Exit Sub
End If
'如果没有上机,则把一般用户的记录调出放到窗体上
For i = 0 To 5
Text1(i).Text = mrc.Fields(i)
Next
Text1(6).Text = Date
Text1(7).Text = Time
Text2(4).Text = mrc.Fields(8)
'如果没有上机,则把数据添加到上机表中
mrcc.AddNew
If Not mrcc.EOF Then
mrcc.Fields(0) = Text1(0).Text
For i = 1 To 7
mrcc.Fields(i) = Text1(i).Text
Next i
mrcc.Fields(8) = Environ("username")
mrcc.Fields(9) = Now
End If
mrcc.Update
mrcc.Close '关闭上机数据库
6、统计上机人数
'统计上机总数
txtsql = "select count(*)from online_info"
Set mrcc = ExecuteSQL(txtsql, msgstring)
s = mrcc.Fields(0)
Label13.Caption = "当前上机人数为:" & s
7、把数据添到下机表中
'连接下机表
txtsql = "select * from line_Info "
Set mrc = ExecuteSQL(txtsql, msgstring)
mrc.AddNew '把记录添加到库中
' If Not mrc.EOF Then
mrc.Fields(1) = Trim(Text1(0).Text)
For i = 1 To 7
mrc.Fields(i + 1) = Trim(Text1(i).Text)
Next i
mrc.Fields(14) = Environ("username")
mrc.Fields(15) = "未结账"
mrc.Fields(16) = "true"
' End If
mrc.Update
mrc.Close
【总结】
在上机功能实现的的过程中,逻辑关系一定要清晰,第一步做什么,接下来做什么,最后做什么,这个关系一定要清楚,有时候我们可能回想不到这么多的问题,这就要求我们把知识变成活的去学,在学习过程中我们需要学会联系实际情况,想想在去图书馆上机、网吧上机的时候的情况。再者就是,我们可以一点点的去完善,等我们想起来某个功能限制的时候,在回来补充。世界那么大,机房要完善的地方那么多,伟大的机房还等着你去拯救,何必在这耗死,迂回包抄,我们可以做的更好。