操作流程:
输入考号和充值金额,判断卡号是否存在,然后更新student_info、recharge_info表,添加新记录或改变金额。
使用的数据库表:
student_info(存放学生信息表)
recharge_info(用于存放充值记录)
具体代码:
Private Sub cmdOFF_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Dim AddCharge As Double '充值完之后的金额
Dim OriginalCharge As Double '充值之前的金额
'对student_info表操作
Dim mrcstudent As ADODB.Recordset '用于存放记录集
Dim studentSQL As String '用于存放SQL语句
Dim studentMsgText As String '用于存放返回信息
'对recharge_info表操作
Dim mrcrecharge As ADODB.Recordset '用于存放记录集
Dim rechargeSQL As String '用于存放SQL语句
Dim rechargeMsgText As String '用于存放返回信息
studentSQL = "select * from student_info where cardno='" & Trim(txtCID.Text) & "'"
Set mrcstudent = ExecuteSQL(studentSQL, studentMsgText)
rechargeSQL = "select * from recharge_info"
Set mrcrecharge = ExecuteSQL(rechargeSQL, rechargeMsgText)
'限制控件不为空
If txtCID.Text = "" Then
MsgBox "请输入充值卡号!", vbOKCancel + vbExclamation, "警告"
txtReCharge.Text = ""
txtShow.Text = ""
Else
If txtReCharge.Text = "" Then
MsgBox "请输入充值金额!", vbOKCancel + vbExclamation, "警告"
txtShow.Text = ""
Else
If Val(txtReCharge.Text) < 0 Then
MsgBox "请输入正确的金额!", vbOKCancel + vbCritical, "错误"
Else
If mrcstudent.EOF = True Then
MsgBox "此卡尚未注册,请仔细检查!", vbOKCancel + vbExclamation, "警告"
Else
OriginalCharge = Val(mrcstudent.Fields(7))
AddCharge = Val(mrcstudent.Fields(7)) + Val(txtReCharge.Text)
'更改数据表内容
mrcstudent.Fields(7) = Trim(AddCharge)
mrcstudent.Update
'为recharge控件添加新记录
mrcrecharge.AddNew
mrcrecharge.Fields(1) = Trim(mrcstudent.Fields(1))
mrcrecharge.Fields(2) = Trim(mrcstudent.Fields(0))
mrcrecharge.Fields(3) = Trim(txtReCharge.Text)
mrcrecharge.Fields(4) = Date
mrcrecharge.Fields(5) = Time
mrcrecharge.Fields(6) = Trim(frmLogin.txtUserName.Text)
mrcrecharge.Fields(7) = Trim(mrcstudent.Fields(11))
mrcrecharge.Update
mrcrecharge.Close
txtShow.Text = "充值卡号:" + CStr(txtCID.Text) + vbCrLf + "上次卡内余额:" + CStr(OriginalCharge) + vbCrLf + "充值后的余额:" + CStr(AddCharge) _
+ vbCrLf + "充值日期:" + Format(Date, "YYYY/MM/DD") + vbCrLf + "充值时间:" + Format(Time, "hh:mm:ss") + vbCrLf + "充值教师:" + frmLogin.txtUserName.Text
mrcstudent.Close
MsgBox "已充值成功!", vbOKOnly + vbInformation, "提示"
End If
End If
End If
End If
End Sub
优化方面:
1.背景图随窗体改变而改变
Dim H As Single '定义窗体高的变量
Dim W As Single '定义窗体高的变量
Private Sub Form_Load()
H = Me.Height
W = Me.Width
End Sub
Private Sub Form_Resize()
Me.Height = H
Me.Width = W
Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight '实现背景图随窗体变大而改变
End Sub
2.禁止粘贴
Private Sub txtCID_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'不可粘贴
If Button = 2 Then
Clipboard.Clear
End If
End Sub
3.限定字符类型
https://blog.csdn.net/TGB__15__ZYB/article/details/86636625
4.显示框不可输入值
Private Sub txtShow_KeyPress(KeyAscii As Integer)
KeyAscii = 0 '不可输入值
End Sub
(对于退卡的窗体和充值窗体相同,就是将学生的状态该问未使用,其他的类型,下面的博客中就不多介绍了。)