因为机房的上下机涉及到的表比较多,因此需要在进行程序的编写前构建好数据流程图。以下是我自己所做的数据流程图,可能不太全面如有不足,请斧正。
Private Sub Command1_Click()
Dim txtSQL As String
Dim MsgText As String
Dim i As Integer
Dim mrc1 As New ADODB.Recordset
If TxtCID.Text = "" Then '判断输入卡号
MsgBox "请先输入卡号!", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else
txtSQL = "select * from student_Info where cardno = '" & Trim(TxtCID.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then '判断卡号是否仍然使用
MsgBox "卡号不存在,请重新确认或重新注册!", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else
If mrc.Fields(10) = "不使用" Then
MsgBox "卡号已注销,请重新注册激活!", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else '判断余额
If mrc.Fields(7) < 0 Then
MsgBox "余额不足,请先充值!", vbOKOnly + vbExclamation, "提示"
frmCZ.Show
Exit Sub
Else
txtSQL = "select * from OnLine_Info where cardno = '" & Trim(TxtCID.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
If Not mrc1.EOF Then '判断卡号是否上机
MsgBox "此卡号已上机!", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else '主窗体显示回执
TxtType.Text = mrc!Type & ""
TxtSID.Text = mrc!studentNo
TxtName.Text = mrc!studentName
TxtDePM.Text = mrc!Department
txtSex.Text = mrc!sex
Text2.Text = mrc!cash
TxtOnDate.Text = Date
txtontime.Text = Time
mrc1.AddNew '上机表添加新纪录
mrc1.Fields(0) = TxtCID.Text
mrc1.Fields(1) = TxtType.Text
mrc1.Fields(2) = TxtSID.Text
mrc1.Fields(3) = TxtName.Text
mrc1.Fields(4) = TxtDePM.Text
mrc1.Fields(5) = txtSex.Text
mrc1.Fields(6) = TxtOnDate.Text
mrc1.Fields(7) = txtontime.Text
mrc1.Fields(8) = GetThisComputerName
mrc1.Fields(9) = Date
mrc1.Update
End If
End If
End If
End If
End If
End Sub
上机部分的代码其实非常简单,关键是要细心,注意多个表之间的关联。