版权声明:未经本人同意不得转载! https://blog.csdn.net/Hellen0708/article/details/82803870
前言
上机在机房系统是至关重要的,只要捋清思路,把大问题分解成一个个的小问题再去解决,困惑就自然迎刃而解了。来看看我的思路吧!
代码片段
Private Sub cmdOnline_Click()
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim mrc2 As ADODB.Recordset
Dim mrc3 As ADODB.Recordset
Dim mrc4 As ADODB.Recordset
'mrc连接学生表
txtSQL = "select * from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'mrc1连接online表
txtSQL = "select * from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
'mrc2连接line表
txtSQL = "select * from line_info where cardno='" & Trim(txtCardNo.Text) & "'"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
'mrc3连接basicdata表
txtSQL = "select * from basicdata_info"
Set mrc3 = ExecuteSQL(txtSQL, MsgText)
txtSQL = "select * from online_info"
Set mrc4 = ExecuteSQL(txtSQL, MsgText)
If Trim(txtCardNo.Text) = "" Then
MsgBox "卡号不能为空!", 48, "警告"
txtCardNo.SetFocus
Exit Sub
End If
If Not IsNumeric(Trim(txtCardNo.Text)) Then
MsgBox "请输入数字!", 48, "警告"
txtCardNo.Text = ""
txtCardNo.SetFocus
Exit Sub
End If
If mrc.EOF = True Then
MsgBox "此卡未注册", 0 + 48, "系统提示"
txtCardNo.SetFocus
txtCardNo.Text = ""
Exit Sub
End If
If Val(mrc.Fields(7)) < Val(mrc3.Fields(5)) Then
MsgBox "余额不足,请先充值!", 48, "警告"
txtCardNo.SetFocus
Exit Sub
End If
If mrc1.EOF = True Then
labSID.Caption = mrc.Fields(1)
labName.Caption = mrc.Fields(2)
labSex.Caption = mrc.Fields(3)
labDept.Caption = mrc.Fields(4)
labType.Caption = mrc.Fields(14)
labOnDate.Caption = Date
labOnTime.Caption = Time
End If
If mrc1.EOF = False Then
MsgBox "此卡正在上机,不能重复登录!", 48, "警告"
txtCardNo.Text = mrc.Fields(0)
labSID.Caption = mrc.Fields(1)
labName.Caption = mrc.Fields(2)
labSex.Caption = mrc.Fields(3)
labDept.Caption = mrc.Fields(4)
labType.Caption = mrc.Fields(14)
labOnDate.Caption = mrc1.Fields(6)
labOnTime.Caption = mrc1.Fields(7)
Else
'更新Online_info表
With mrc1
.AddNew
.Fields(0) = Trim(txtCardNo.Text)
.Fields(1) = Trim(labType.Caption)
.Fields(2) = Trim(labSID.Caption)
.Fields(3) = Trim(labName.Caption)
.Fields(4) = Trim(labDept.Caption)
.Fields(5) = Trim(labSex.Caption)
.Fields(6) = Trim(labOnDate.Caption)
.Fields(7) = Trim(labOnTime.Caption)
.Fields(8) = VBA.Environ("computername")
.Fields(9) = Now
.Update
End With
'更新line_info表
With mrc2
.AddNew
.Fields(1) = txtCardNo.Text
.Fields(2) = labSID.Caption
.Fields(3) = labName.Caption
.Fields(4) = labDept.Caption
.Fields(5) = Trim(labSex.Caption)
.Fields(6) = labOnDate.Caption
.Fields(7) = labOnTime.Caption
.Fields(8) = Null
.Fields(9) = Null
.Fields(10) = Null
.Fields(11) = "0.0"
.Fields(12) = mrc.Fields(7)
.Fields(13) = "正常上机"
.Fields(14) = VBA.Environ("computername")
.Update
End With
End If
Label16.Caption = "当前上机人数:" & mrc4.RecordCount
labOffDate.Caption = ""
labOffTime.Caption = ""
labCTime.Caption = ""
labBalance.Caption = ""
labCMoney.Caption = ""
End Sub
显示当前时间代码
Private Sub Timer1_Timer()
labTimenow.Caption = "当前时间:" & Now
End Sub
结语
在学习的计算机项目中,实践类的比较有意思,要好好抓住机会多动脑多思考,加油!