一、思维导图
二、代码
Private Sub cmdOk_Click()
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim mrc2 As ADODB.Recordset
'判断是否输入卡号
If txtcardno.Text = "" Then
MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtcardno.SetFocus
Else
txtSQL = "select * from student_info where cardno='" & Trim(txtcardno.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then '判断卡号是否存在
MsgBox "卡号不存在或已不再使用!", vbOKOnly + vbExclamation, "警告"
txtcardno.SetFocus
txtcardno.Text = ""
Else
'判断卡是否在使用状态
txtSQL = "select * from student_info where cardno ='" & Trim(txtcardno.Text) & "'and status = '" & "使用" & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then '光标可以移动到最后一行所以数据库中没有响应的卡号‘
MsgBox "该卡未使用,请重新输入卡号。", vbOKOnly + vbExclamation, "警告"
txtcardno.Text = ""
txtcardno.SetFocus
Exit Sub
Else
'判断是否上机
txtSQL = "select * from online_info where cardno ='" & Trim(txtcardno.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
If mrc1.EOF = False Then '光标可以移动到最后一行所以数据可中没有相应的卡号’
MsgBox "该卡正在上机,请下机后再退卡。", vbOKOnly + vbExclamation, "警告"
txtcardno.Text = ""
txtcardno.SetFocus
Exit Sub
Else
txtSQL = "select * from cancelcard_info where cardno = '" & Trim(txtcardno.Text) & "' and status = '" & "使用" & "'"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
mrc2.AddNew
mrc2.Fields(0) = Trim(mrc.Fields(1))
mrc2.Fields(1) = Trim(mrc.Fields(0))
mrc2.Fields(2) = Val(mrc.Fields(7))
mrc2.Fields(3) = Date
mrc2.Fields(4) = Time
mrc2.Fields(5) = Trim(username)
mrc2.Fields(6) = "未结账"
mrc2.Update
'显示信息
txtnotes.Text = "退卡卡号:" & txtcardno.Text & vbCrLf & vbCrLf & _
"应退款金额:" & Trim(mrc.Fields(7)) & vbCrLf & vbCrLf & _
"退卡日期:" & Date & vbCrLf & vbCrLf & _
"退卡时间:" & Time & vbCrLf & vbCrLf & _
"办理退卡老师:" & mrc.Fields(9)
End If
End If
End If
End If
End Sub