机房收费系统之上机

这几天敲完了机房收费的上机功能,一开始觉得很难,是因为没有逻辑,找不到头绪,但是找到逻辑之后,会发现其实还是很简单的,那些代码有的在学生里面就有过,所以并不陌生,上机主要的任务还是找好逻辑,接下来就容易多了。我来向大家说一下我的想法,如有不对,欢迎探讨。
机房收费系统之上机
部分代码展示:
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就可以进行连接。