退卡界面的修改优化
仔细想想退卡界面其实只需要把卡号输入然后点击退卡就好了,不用那么复杂的界面设置,本着简单简洁的原则重新设计了以下界面,主要功能没有变化还是标题栏上的主题退卡。
卡号在输入的过程中会显示相关的卡的信息退卡日期退卡时间等。
其中状态栏会显示当前卡的状态是在使用的还是已经退过的,如果还没有退过点击确定按钮就可以退卡的,退卡成功会弹出相应的对话框提醒。
若卡是退过的点击确定按钮也会弹出对话框提示“此卡已退”。
具体的代码和界面设置如下图:
Option Explicit
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim mrcc As ADODB.Recordset
Dim msgtext As String
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
'建立数据库的链接
txtSQL = "select*from cabcelcard_info "
Set mrcc = ExecuteSQL(txtSQL, msgtext)
'判断卡是否已退
While (mrcc.EOF = False)
If Trim(mrcc.Fields(1)) = Trim(Text1.Text) Then
MsgBox "此卡已退!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
mrcc.MoveNext
End If
Wend
'在数据库中写入要退的卡的信息
mrcc.AddNew
mrcc.Fields(0) = Trim(mrc.Fields(1))
mrcc.Fields(1) = Trim(mrc.Fields(0))
mrcc.Fields(2) = Trim(mrc.Fields(7))
mrcc.Fields(3) = Date
mrcc.Fields(4) = Time
mrcc.Fields(5) = username
mrcc.Fields(6) = "已退卡"
mrcc.Update
'更改学生信息表中的卡的状态信息
txtSQL = "select*from student_info where cardno='" & Text1.Text & "'"
Set mrc = ExecuteSQL(txtSQL, msgtext)
mrc.Fields(10) = "已退卡"
mrc.Update
'退卡成功后弹出相应的对话框
MsgBox "退卡成功!", vbOKOnly + vbExclamation, "警告"
'输入框清零
Text1.Text = ""
Exit Sub
End Sub
Private Sub Text1_Change()
'连接数据库中的学生信息表
txtSQL = "select*from student_Info"
Set mrc = ExecuteSQL(txtSQL, msgtext)
'读取学生信息表中的相关信息
While (mrc.EOF = False)
If Trim(mrc.Fields(0)) = Trim(Text1.Text) Then '当输入的卡号与数据库中学生卡号相同时
Label4.Caption = mrc.Fields(7) '学生余额显示
'显示当前退卡的相关信息和卡的状态
Label3.Caption = "退卡卡号:" & mrc.Fields(0) & Chr(13) & Chr(13) & "状态:" & mrc.Fields(10) & Chr(13) & Chr(13) & "应退金额:" & mrc.Fields(7) & Chr(13) & Chr(13) & "学号:" & mrc.Fields(1) & Chr(13) & Chr(13) & "姓名:" & mrc.Fields(2) & Chr(13) & Chr(13) & "退卡日期:" & Date & Chr(13) & Chr(13) & "退卡时间:" & Time & Chr(13) & Chr(13) & "操作人员:" & username
Exit Sub
Else
mrc.MoveNext '查询表中的下一条信息
End If
Wend
End Sub