充值的思路:
在注册之后会对卡进行充值,充值需要注意一下机的问题,充值就是在上机过程中保持卡中有足够的钱上机,充值操作属于操作员。
1卡号存在(文本框中不为空)
2.充值金额不低于最小金额
3.退卡不能充值
4.显示金额是充值的金额加卡内余额
充值的流程图
充值的代码:
Private Sub cmdOK_Click()
Dim mrc As ADODB.Recordset
Dim mrcc As ADODB.Recordset
Dim txtSQL As String
Dim MsgText As String
Dim a As String
Dim b As String
'任务一:不允许不输入
If txtCardNo.Text = "" Or txtCash.Text = "" Then
MsgBox "请输入姓名和充值金额"
Else
'任务二: 如何能充值,卡号存在,并在使用状态
txtSQL = "select * from student_info where cardNo = '" & Trim(txtCardNo.Text) & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If mrcc.EOF Then ' 光标可以移动到这一行所以数据库中没有相应的卡号
MsgBox "卡号不存在,请重新输入卡号", vbOKOnly + vbExclamation, "提示"
txtCardNo.Text = ""
txtCardNo.SetFocus
Exit Sub
Else
'任务三:查询卡是否在使用状态
txtSQL = "select * from student_info where cardNo = '" & Trim(txtCardNo.Text) & "' and status = '" & "使用" & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If mrcc.EOF Then ' 光标可以移动到这一行所以数据库中没有相应的卡号
MsgBox "该卡已退卡,请激活,或重新输入卡号。", vbOKOnly + vbExclamation, "提示"
txtCardNo.Text = ""
txtCardNo.SetFocus
Exit Sub
Else
'任务四;查询需要的学号
a = mrcc.Fields(1)
b = mrcc.Fields(7)
'任务五:不能少于最小金额
If Val(txtCash.Text) <= Val(frmBasicData.txtMinCash.Text) Then
MsgBox "充值金额不能少于最小金额!", vbOKOnly + vbExclamation, "警告"
txtCash.Text = ""
txtCash.SetFocus
Else
'任务六:把值附到充值表中
txtSQL = "select * from ReCharge_info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.AddNew
mrc.Fields(1) = Trim(a)
mrc.Fields(2) = Trim(txtCardNo.Text)
mrc.Fields(4) = Date
mrc.Fields(5) = Time
mrc.Fields(6) = UserName
mrc.Fields(7) = "未结账"
mrc.Fields(3) = Trim(txtCash.Text)
mrc.Update
'任务六:显示信息
' 充值之前的钱数需要记录,一共有多少钱金额需要记录,时间日期,老师
txtShow.Text = "充值卡号:" & mrc.Fields(2) & vbCrLf & vbCrLf & "上次卡内的余额:" & b & vbCrLf & vbCrLf & "现在卡内的余额:" & b + mrc.Fields(3) & vbCrLf & vbCrLf & "充值日期:" & mrc.Fields(4) & vbCrLf & vbCrLf & "充值时间:" & mrc.Fields(5) & vbCrLf & vbCrLf & "充值老师:" & UserName & vbCrLf
mrc.Close
'任务七:把信息添加到学生表中,更新相应信息
txtSQL = "select * from student_info where cardno = '" & Trim(txtCardNo.Text) & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
mrcc.Fields(7) = Val(Val(Trim(b)) + Val(Trim(txtCash.Text)))
mrcc.Update
mrcc.Close
MsgBox "保存成功", vbOKOnly + vbExclamation, "警告"
txtShow.Text = ""
txtCardNo.Text = ""
txtCash.Text = ""
End If
End If
End If
End If
End Sub
总结 :
充值与注册很像,都是添加信息,不同的是充值会有一小点修改,注册需要注意的问题,退卡的卡号不能重复注册,退卡的卡号不能上机,信息需要写全。
从注册,充值,退卡,这里是机房一条线,逐渐对机房思路清晰了起来。