充值窗体是一个比较简单的窗体,唯一需要注意的就是要将充值金额插入到充值表,将总金额要更新到学生表中。
首先是充值窗体充值的思路
![这里写图片描述](https://img-blog.csdn.net/20171209191722504?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlmMTM5MjA3NDU1MzQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接下来是代码部分
Dim txtSQL As String
Dim txtSQL1 As String
Dim txtSQL2 As String
Dim MsgText As String
Dim cash1 As Integer
Dim cash2 As Integer
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim mrc2 As ADODB.Recordset
Private Sub cmdcancel_Click()
Unload Me
End Sub
Private Sub cmdok_Click()
If Not Testtxt(txtcardno.Text) Then
MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "提示"
txtcardno.SetFocus
Exit Sub
End If
If Not IsNumeric(Trim(txtcardno.Text)) Then
MsgBox "卡号请输入数字!", vbOKOnly + vbExclamation, "提示"
txtcardno.Text = ""
txtcardno.SetFocus
Exit Sub
End If
If Trim(txtcardno.Text) < 0 Then
MsgBox "输入的数字不应该小于0,请重新输入!", vbOKOnly + vbExclamation, "提示"
txtcardno.Text = ""
txtcardno.SetFocus
End If
If Not Testtxt(txtaddmoney.Text) Then
MsgBox "请输入充值金额!", vbOKOnly + vbExclamation, "提示"
txtrecharge.SetFocus
Exit Sub
End If
If Not IsNumeric(Trim(txtaddmoney.Text)) Then
MsgBox "充值金额请输入数字!", vbOKOnly + vbExclamation, "提示"
txtaddmoney.Text = ""
txtaddmoney.SetFocus
Exit Sub
End If
If Trim(txtaddmoney.Text) < 0 Then
MsgBox "输入的数字不应该小于0,请重新输入!", vbOKOnly + vbExclamation, "提示"
txtaddmoney.Text = ""
txtaddmoney.SetFocus
Exit Sub
End If
txtSQL = "select * from BasicData_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If Val(txtaddmoney.Text) < mrc.Fields(5) Then
MsgBox "充值金额不得小于最小金额,请重新输入!", vbOKOnly + vbExclamation, "提示"
txtaddmoney.Text = ""
txtaddmoney.SetFocus
Exit Sub
End If
txtSQL1 = "select * from student_Info where cardno='" & Trim(txtcardno.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL1, MsgText)
If mrc1.EOF = True Then
MsgBox "该卡号不存在或以停用,请重新输入!", vbOKOnly + vbExclamation, "提示"
txtcardno.Text = ""
txtcardno.SetFocus
Exit Sub
Else
cash1 = mrc1.Fields(7)
txtSQL2 = "select * from Recharge_Info"
Set mrc2 = ExecuteSQL(txtSQL2, MsgText)
mrc2.AddNew
mrc2.Fields(1) = mrc1.Fields(1)
mrc2.Fields(2) = mrc1.Fields(0)
mrc2.Fields(3) = Trim(txtaddmoney.Text)
mrc2.Fields(4) = Date
mrc2.Fields(5) = Time
mrc2.Fields(6) = mrc1.Fields(9)
mrc2.Fields(7) = mrc1.Fields(10)
mrc2.Update
cash2 = cash1 + Val(txtaddmoney.Text)
mrc1.Fields(7) = cash2
mrc1.Update
txtexplain.Text = "充值卡号:" & txtcardno.Text & vbCrLf & vbCrLf & _
"原金额:" & cash1 & vbCrLf & vbCrLf & _
"充值金额:" & txtaddmoney.Text & vbCrLf & vbCrLf & _
"现有金额:" & cash2 & vbCrLf & vbCrLf & _
"充值日期:" & Date & vbCrLf & vbCrLf & _
"充值时间:" & Time & vbCrLf & vbCrLf & _
"充值教师:" & UserName
mrc.Close
mrc1.Close
mrc2.Close
MsgBox "充值成功", vbOKOnly + vbExclamation, "提示"
txtcardno.Text = ""
txtaddmoney.Text = ""
txtexplain.Text = ""
End If
End Sub
Private Sub Form_Load()
Me.Width = 8000
Me.Height = 7000
Me.Top = 0
Me.Left = 0
End Sub
PS:显示文本的框的MultiLine属性要设置成True
总结:自己以前一直在纠结更新student表更新一列怎么更新,但是其实只要更新一个记录集的一个字段就可以,有时候只要去尝试就会发现其实问题并没有自己想象的那么困难,更加重要的是逻辑一定要理清,有顺序的运行程序。