思考:
因为注册的时候,需要输入初始的金额,但是上下机的时候,需要根据上网时间长短来改变学生表中的金额,所以导致最后的结账很麻烦,最后我将注册的内容也写入到充值中,流程图如下:
流程图
代码
Private Sub cmdSave_Click()
'存盘
'连接基础信息数据库
txtSQL = "select *from basicdata_info"
Set mrc_BData = ExecuteSQL(txtSQL, msgText)
'判断是否有基础数据
If mrc_BData.EOF Then
'MsgBox "请在管理员权限中添加基本数据设定!", vbOKOnly + vbExclamation, "警告"
If Trim(mrc_User.Fields(2)) = "管理员" Then
frmBasicDataSet.Show
Else
MsgBox "请联系管理员添加基本数据信息!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
End If
'判断输入金额是否低于最低金额
If Trim(txtRecharge.Text) < mrc_BData.Fields(5) Then '不能使用trim函数
MsgBox "金额不能低于设置的最小金额", vbOKOnly + vbExclamation, "警告"
txtRecharge.Text = ""
txtRecharge.SetFocus
mrc_BData.Close
Exit Sub
End If
'判断卡号是否为空
If Trim(txtCardNo.Text) = "" Then
txtCardNo.SetFocus
txtCardNo.BackColor = vbRed
Exit Sub
End If
'判断学号是否为空
If Trim(txtSID.Text) = "" Then
MsgBox "学号不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtSID.SetFocus
Exit Sub
End If
'判断姓名是否为空
If Trim(txtName.Text) = "" Then
MsgBox "姓名不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtName.SetFocus
Exit Sub
End If
'判断性别是否为空
If Trim(ComboSex.Text) = "" Then
MsgBox "性别不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
ComboSex.SetFocus
Exit Sub
End If
'判断系别是否为空
If Trim(txtDept.Text) = "" Then
MsgBox "系别不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtDept.SetFocus
Exit Sub
End If
'判断年级是否为空
If Trim(txtGrade.Text) = "" Then
MsgBox "年级不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtGrade.SetFocus
Exit Sub
End If
'判断班级是否为空
If Trim(txtClass.Text) = "" Then
MsgBox "班级不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtClass.SetFocus
Exit Sub
End If
'判断类型是否为空
If Trim(comboType.Text) = "" Then
MsgBox "类型不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
comboType.SetFocus
Exit Sub
End If
'判断金额是否为空
If Trim(txtRecharge.Text) = "" Then
MsgBox "金额不能为空,请输入卡号!", vbOKOnly + vbExclamation, "警告"
txtRecharge.SetFocus
Exit Sub
End If
'连接数据库
txtSQL = "select *from student_info " 'where cardno='" & txtCardNo.Text & "'"
Set mrc_Stu = ExecuteSQL(txtSQL, msgText)
'判断卡号是否重复
While (mrc_Stu.EOF = False)
'判断是否有重复记录
If Trim(mrc_Stu.Fields(0)) = Trim(txtCardNo.Text) Then
MsgBox "卡号已经存在,请重新输入卡号!", vbOKOnly + vbExclamation, "警告"
txtCardNo.Text = ""
txtCardNo.SetFocus
Exit Sub
Else
'移动到下一条记录
mrc_Stu.MoveNext
End If
Wend
'判断学号是否重复
While (mrc_Stu.EOF = False)
'判断是否有重复记录
If Trim(mrc_Stu.Fields(1)) = Trim(txtSID.Text) Then
MsgBox "学号已经存在,请重新输入学号!", vbOKOnly + vbExclamation, "警告"
txtSID.Text = ""
txtSID.SetFocus
Exit Sub
Else
'移动到下一条记录
mrc_Stu.MoveNext
End If
Wend
ReDate = Format(Date, "yyyy-mm-dd") '充值日期
ReTime = Format(Now, "hh:mm:ss") '充值时间
mrc_Stu.AddNew
mrc_Stu.Fields(0) = Trim(txtCardNo.Text) '卡号
mrc_Stu.Fields(1) = Trim(txtSID.Text) '学号
mrc_Stu.Fields(2) = Trim(txtName.Text) '姓名
mrc_Stu.Fields(3) = Trim(ComboSex.Text) '性别
mrc_Stu.Fields(4) = Trim(txtDept.Text) '系别
mrc_Stu.Fields(5) = Trim(txtGrade.Text) '年级
mrc_Stu.Fields(6) = Trim(txtClass.Text) '班级
mrc_Stu.Fields(7) = Trim(txtRecharge.Text) '金额
mrc_Stu.Fields(8) = Trim(txtExplain.Text) '备注
mrc_Stu.Fields(9) = Trim(UserName) 'UserID
mrc_Stu.Fields(10) = Trim(comboState.Text) '状态
mrc_Stu.Fields(11) = "未结账" '结账状态
mrc_Stu.Fields(12) = Trim(ReDate) '日期
mrc_Stu.Fields(13) = Trim(ReTime) '时间
mrc_Stu.Fields(14) = Trim(comboType.Text) '类型
mrc_Stu.Update
'添加到注册表中
txtSQL = "select *from recharge_info"
Set mrc_RE = ExecuteSQL(txtSQL, msgText)
mrc_RE.AddNew
mrc_RE.Fields(1) = Trim(txtSID.Text) '学号
mrc_RE.Fields(2) = Trim(txtCardNo.Text) '卡号
mrc_RE.Fields(3) = Trim(txtRecharge.Text) '金额
mrc_RE.Fields(4) = Trim(ReDate) '日期
mrc_RE.Fields(5) = Trim(ReTime) '时间
mrc_RE.Fields(6) = Trim(UserName) 'UserID
mrc_RE.Fields(7) = "未结账" '结账状态
mrc_RE.Update
mrc_RE.Close
mrc_Stu.Close
MsgBox "注册成功!", vbOKOnly + vbExclamation, "警告"
txtCardNo.Text = ""
txtSID.Text = ""
txtName.Text = ""
ComboSex.Text = ""
txtDept.Text = ""
txtGrade.Text = ""
txtClass.Text = ""
txtRecharge.Text = ""
txtExplain.Text = ""
comboState.Text = ""
End Sub
总结:
因为做到了结账,发现了很多问题,所以才利用这种方式,之前的方式发现有很多问题。
感谢您的阅读,如果您有更好的想法,欢迎分享给我!