上机窗体是在注册完之后需要上机的时候开始使用,但是具体的一些限制还是需要注意一下,比如该卡
号是否注册,是否退卡等等,接下来就看看这个过程。
具体代码如下所示:
Private Sub cmdOnline_Click()
'定义数据库对象
Dim mrcStudent As adodb.Recordset
Dim mrcCancelCard As adodb.Recordset
Dim mrcOnline As adodb.Recordset
Dim mrcLine As adodb.Recordset
Dim mrcBasicData As adodb.Recordset
'定义字符串语句
Dim OnlineSQL As String
Dim StudentSQL As String
Dim BasicDataSQL As String
Dim LineSQL As String
'定义返回查询信息变量
Dim Onmsgtext As String
Dim StuMsgtext As String
Dim BMsgtext As String
Dim LMsgtext As String
'判断是否输入卡号
If Trim(txtCardNo.Text) = "" Then
MsgBox "请输入卡号!", 0 + 48, "温馨提示"
txtCardNo.SetFocus
Exit Sub
Else
'判断输入的是否是数字
If Not IsNumeric(txtCardNo.Text) Then
MsgBox "请输入数字", 0 + 48, "温馨提示"
txtCardNo.Text = ""
txtcard.SetFocus
Exit Sub
Else
'判断此卡是否存在
StudentSQL = "select * from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrcStudent = ExecuteSQL(StudentSQL, StuMsgtext)
'判断是否注册
If mrcStudent.EOF Then
MsgBox "此卡尚未注册!", 0 + 48, "提示"
txtCardNo.SetFocus
txtCardNo.Text = ""
mrcStudent.Close
Exit Sub
Else
'判断是否退卡
If mrcStudent.EOF = False And mrcStudent.Fields(10) = "未使用" Then
MsgBox "该卡号已经退卡,不能上机!", 0 + 48, "警告"
txtCardNo.Text = ""
txtCardNo.SetFocus
mrcStudent.Close
Else
'判断余额是否大于最小上机金额
If Val(mrcStudent.Fields(7)) < Val(Register.txtRecharge) Then
MsgBox "亲,余额不足,请充值!", 0 + 48, "提示"
mrcStudent.Close
Exit Sub
Else
'判断是否上机
OnlineSQL = "select * from online_info where cardno='" & txtCardNo.Text & "'"
Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
If Not mrcOnline.EOF Then
MsgBox "此卡正在上机!", 0 + 48, "提示"
Exit Sub
Else
'更新上下机界面
txtSID.Text = mrcStudent.Fields(1)
txtDept.Text = mrcStudent.Fields(4)
txtSex.Text = mrcStudent.Fields(3)
txtondate.Text = Date
txtOntime.Text = Time
txttype.Text = mrcStudent.Fields(14)
txtName.Text = mrcStudent.Fields(2)
txtBalance.Text = mrcstduent.Fields(7) '余额更新
'更新Online表
OnlineSQL = "select * from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
mrcOnline.AddNew
mrcOnline.Fields(0) = Trim(txtcard.Text)
mrcOnline.Fields(1) = Trim(txttype.Text)
mrcOnline.Fields(2) = Trim(txtSID.Text)
mrcOnline.Fields(3) = Trim(txtName.Text)
mrcOnline.Fields(4) = Trim(txtDept.Text)
mrcOnline.Fields(5) = Trim(txtSex.Text)
mrcOnline.Fields(6) = Trim(txtondate.Text)
mrcOnline.Fields(7) = Trim(txtOntime.Text)
'获取计算机的名字
mrcOnline.Fields(8) = Trim(VBA.Environ("computername"))
mrcOnline.Fields(9) = Date
mrcOnline.Update
mrcOnline.Close
'显示正在上机的人数
OnlineSQL = "select * from online_info"
Set mrcOnline = ExecuteSQL(OnlineSQL, Onmsgtext)
If mrcOnline.EOF = True Then
lblPeople.Caption = 0
Else
lblPeople.Caption = mrcOnline.RecordCount
End If
label23.Caption = "欢迎光临"
End If
End If
End If
End If
End If
End If
End Sub
注意:这个窗体查询了5个表,所以要定义5个连接数据库的对象