机房收费系统之上机
这几天敲完了机房收费的上机功能,一开始觉得很难,是因为没有逻辑,找不到头绪,但是找到逻辑之后,会发现其实还是很简单的,那些代码有的在学生里面就有过,所以并不陌生,上机主要的任务还是找好逻辑,接下来就容易多了。我来向大家说一下我的想法,如有不对,欢迎探讨。
部分代码展示:
1、判断卡号是否为空
If Trim(txtCardno.Text = "") Then
MsgBox "卡号不能为空,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtCardno.SetFocus’
2、判断卡号是否存在
'查询指定用户名的记录
txtsql = "select * from student_info where cardno='" & txtCardno.Text & "'"
'执行查询语句
Set mrc = ExecuteSQL(txtsql, msgtext)
'判断卡号是否存在
If mrc.EOF = True Then
MsgBox "没有这个卡号,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtCardno.SetFocus
3、判断卡号是否已经被注销,这里需要将数据库中的student表中的status中的一个改为“不使用”
txtsql = "select * from student_info where cardno='" & txtCardno.Text & "'and status='不使用'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF = False Then
MsgBox "该卡已经注销,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtCardno = ""
mrc.Close
4、判断该卡号是否正在上机
txtsql = "select * from student_info where cardno='" & txtCardno.Text & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF = False Then
MsgBox "此卡正在上机,不能重复上机!", 48, "提示"
5、判断余额是否足够
txtsql1 = "select * from student_info where cardno='" & txtCardno.Text & "'"
Set mrc = ExecuteSQL(txtsql1, MsgText1)
txtsql = "select * from Basicdata_info"
Set mrc1 = ExecuteSQL(txtsql, msgtext)
If mrc.EOF = False And Val(mrc.Fields(7)) < Val(mrc1.Fields(5)) Then
MsgBox "余额小于最小限制金额,请充值后再上机!", 0 + 48, "提示"
然后就可以显示数据库中的数据了代码如下:
txtStudentno.Text = mrc.Fields(1)
txtName.Text = mrc.Fields(2)
txtSex.Text = mrc.Fields(3)
txtType.Text = mrc.Fields(14)
txtGrade.Text = mrc.Fields(5)
txtOndate.Text = Date
txtOntime.Text = Time
到了这里之后还要同步online和line表 代码如下
Dim mrc2 As ADODB.Recordset
txtsql = "select * from online_info"
Set mrc2 = ExecuteSQL(txtsql, msgtext)
mrc2.AddNew
mrc2.Fields(0) = Trim(txtCardno.Text)
mrc2.Fields(1) = Trim(txtType.Text)
mrc2.Fields(2) = Trim(txtStudentno.Text)
mrc2.Fields(3) = Trim(txtName.Text)
mrc2.Fields(4) = Trim(txtType.Text)
mrc2.Fields(5) = Trim(txtSex.Text)
mrc2.Fields(6) = Trim(txtOndate.Text)
mrc2.Fields(7) = Trim(txtOntime.Text)
mrc2.Fields(8) = Trim(VBA.Environ("computername")) '将计算机名同步到数据库的相应表格中
mrc2.Fields(9) = Now
Label15.Caption = mrc2.RecordCount + 1 '显示上机人数
mrc2.Update
mrc2.Close
'将上机的数据同步到line表当中
Dim mrc3 As ADODB.Recordset
txtsql = "select* from line_info"
Set mrc3 = ExecuteSQL(txtsql, msgtext)
mrc3.AddNew
mrc3.Fields(1) = Trim(txtCardno.Text)
mrc3.Fields(2) = Trim(txtStudentno.Text)
mrc3.Fields(3) = Trim(txtName.Text)
mrc3.Fields(4) = Trim(txtType.Text)
mrc3.Fields(5) = Trim(txtSex.Text)
mrc3.Fields(6) = Trim(txtOndate.Text)
mrc3.Fields(7) = Trim(txtOntime.Text)
mrc3.Fields(13) = "正常上机"
mrc3.Fields(14) = Trim(VBA.Environ("computername"))
mrc3.Update
mrc3.Close
MsgBox "上机完成!", 48, "提示"
以上为部分代码展示,连接起来中间用Else就可以进行连接。