机房收费系统之充值窗体

充值窗体是一个比较简单的窗体,唯一需要注意的就是要将充值金额插入到充值表,将总金额要更新到学生表中。

首先是充值窗体充值的思路

这里写图片描述

接下来是代码部分
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 '连接BasicData表
Dim mrc1 As ADODB.Recordset '连接student表
Dim mrc2 As ADODB.Recordset '连接Recharge表

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
  '判断输入的数字是否大于0
    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
  '判断输入的数字是否大于0
    If Trim(txtaddmoney.Text) < 0 Then
        MsgBox "输入的数字不应该小于0,请重新输入!", vbOKOnly + vbExclamation, "提示"
        txtaddmoney.Text = ""
        txtaddmoney.SetFocus
        Exit Sub
    End If
    '判断充值金额是否小于基础表中的最小金额
    '连接basicdata表
    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
    '连接student表判断卡号是否存在
    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)
        '更新charge表
        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
        '将总金额更新student表
        cash2 = cash1 + Val(txtaddmoney.Text)
        mrc1.Fields(7) = cash2
        mrc1.Update
        '在txtexplain文本框中显示充值信息
        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表更新一列怎么更新,但是其实只要更新一个记录集的一个字段就可以,有时候只要去尝试就会发现其实问题并没有自己想象的那么困难,更加重要的是逻辑一定要理清,有顺序的运行程序。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 43
    评论
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值