机房收费系统之充值窗体

本文介绍了一个简单的卡片充值系统的实现过程,包括输入卡号验证、充值金额校验、更新余额等功能。通过具体的步骤说明了如何使用Visual Basic及ADO来操作数据库完成卡片充值。

该窗体功能:为卡充值金额,并对最新余额进行更新。  

步骤:

1,输入卡号后,判断该卡是否未注册或者已注销(通过学生信息表查询),若是则提示信息。

2,输入充值金额后判断该金额是否小于基本数据表中的最少金额,若少于则提示不能充值。

3,充值成功后将该卡号的充值信息添加到充值表中并在窗体中显示出来。

4,在最新余额表中队该卡号的最新余额进行更新

窗体代码:

Option Explicit
'确定充值
Private Sub cmdOk_Click()
    Dim strSQL As String
    Dim MsgString As String
    Dim mrs As ADODB.Recordset
    Dim mrss1 As ADODB.Recordset
    Dim mrss2 As ADODB.Recordset
    Dim mrss3 As ADODB.Recordset
    Dim Balance As Single
    Dim Number As String
    Dim LeastFee As Single
    If Trim(txtCardNo.Text) = "" Then
        MsgBox "卡号不能为空!", vbExclamation + vbOKOnly, "警告"
        txtCardNo.Text = ""
        txtCardNo.SetFocus
        Exit Sub
    End If
    '判断该卡是否已注册
    strSQL = "select * from Studentinfo where CardNo='" & Trim(txtCardNo.Text) & "'"
    Set mrss1 = ExecuteSQL(strSQL, MsgString)
    If mrss1.EOF Then
        MsgBox "该卡没有注册!", vbExclamation + vbOKOnly, "警告"
        txtCardNo.Text = ""
        txtCardNo.SetFocus
        Exit Sub
    End If
    '获得学号
    Number = Trim(mrss1.Fields(1))
    '判断充值金额是否为空和数字
    If Trim(txtRechargeMoney.Text) = "" Then
        MsgBox "请输入充值金额!", vbExclamation + vbOKOnly, "警告"
        txtRechargeMoney.Text = ""
        txtRechargeMoney.SetFocus
        Exit Sub
    End If
    If IsNumeric(Trim(txtRechargeMoney.Text)) = False Then
        MsgBox "请输入数字!", vbExclamation + vbOKOnly, "警告"
        txtRechargeMoney.Text = ""
        txtRechargeMoney.SetFocus
        Exit Sub
    End If
    strSQL = "select * from Basicdata"
    Set mrs = ExecuteSQL(strSQL, MsgString)
    mrs.MoveLast
    LeastFee = Val(Trim(CStr(mrs.Fields(4))))
    mrs.Close
    If Val(Trim(txtRechargeMoney.Text)) < LeastFee Then
        MsgBox "最少充值为" & LeastFee & "元!", vbExclamation + vbOKOnly, "充值金额"
        txtRechargeMoney.Text = ""
        txtRechargeMoney.SetFocus
        Exit Sub
    End If
    '获取上次余额
    strSQL = "select * from LastBalance where Cardno='" & Trim(txtCardNo.Text) & "'"
    Set mrss2 = ExecuteSQL(strSQL, MsgString)
    Balance = Trim(mrss2.Fields(2))
    mrss2.Close
    '向数据库中的充值表中添加信息
    strSQL = "select * from Recharge where CardNo='" & Trim(txtCardNo.Text) & "'"
    Set mrs = ExecuteSQL(strSQL, MsgString)
    mrs.AddNew
    mrs.Fields(0) = Trim(txtCardNo.Text)
    mrs.Fields(1) = Trim(txtRechargeMoney.Text)
    mrs.Fields(2) = Balance
    mrs.Fields(3) = Trim(Val(mrs.Fields(2)) + Val(mrs.Fields(1)))
    Balance = Trim(mrs.Fields(3))
    mrs.Fields(4) = Time
    mrs.Fields(5) = Date
    mrs.Fields(6) = Trim(strName)
    mrs.Fields(7) = "未结账"
    mrs.Fields(8) = Number
    mrs.Update
    strSQL = "select *  from LastBalance where Cardno='" & Trim(txtCardNo.Text) & "'"
    Set mrss2 = ExecuteSQL(strSQL, MsgString)
    If mrss2.EOF Then Exit Sub
    mrss2.Fields(2).Value = Trim(mrs.Fields(3))
    mrss2.Update
    mrss2.Close
    '显示信息
    lblCardNo.Caption = "充值卡号:" & Trim(txtCardNo.Text)
    lblLastBalance.Caption = "上次卡内余额:" & Trim(mrs.Fields(2))
    lblNowBalance.Caption = "现在卡内余额:" & Trim(mrs.Fields(3))
    lblRechargeDate.Caption = "充值日期:" & Trim(mrs.Fields(5))
    lblRechargeTime.Caption = "充值时间:" & Trim(mrs.Fields(4))
    lblRechargeTeacher.Caption = "充值教师:" & Trim(mrs.Fields(6))
    mrs.Close
    lblCardNo.Visible = True
    lblLastBalance.Visible = True
    lblNowBalance.Visible = True
    lblRechargeDate.Visible = True
    lblRechargeTime.Visible = True
    lblRechargeTeacher.Visible = True
    MsgBox "充值成功!", vbInformation + vbOKOnly, "充值成功"
    Unload Me
    Call Form_Load
    Exit Sub
End Sub
'初始化
Private Sub Form_Load()
    Me.Show
    txtCardNo.Text = ""
    txtRechargeMoney.Text = ""
    txtCardNo.SetFocus
    lblCardNo.Visible = False
    lblLastBalance.Visible = False
    lblNowBalance.Visible = False
    lblRechargeDate.Visible = False
    lblRechargeTime.Visible = False
    lblRechargeTeacher.Visible = False

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值