第一次机房上机系统——充值

前言:
我也是刚刚进行到充值,一开始以为很简单,但是经过自己仔细的思考,以及不断的升级,发现其中有很多奥秘,希望下面的分享能够对你有所帮助!

流程图

这里写图片描述

代码

1、首先判断是否为空

'判断卡号是否为空
    If Trim(txtCardNo.Text) = "" Then
        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告"
        txtCardNo.SetFocus
        Exit Sub
    End If

    '判断充值金额是否为空
    If Trim(txtRecharge.Text) = "" Then
        MsgBox "请输入充值金额", vbOKOnly + vbExclamation, "警告"
        txtRecharge.SetFocus
        Exit Sub
    End If

2、判断是否是数字

'判断卡号是否为数字
    If Not IsNumeric(txtCardNo.Text) Then
        MsgBox "卡号请输入数字", vbOKOnly + vbExclamation, "警告"
        txtCardNo.Text = ""
        txtCardNo.SetFocus
        Exit Sub
    End If

    '判断充值金额是否为数字
    If Not IsNumeric(txtRecharge.Text) Then
        MsgBox "充值金额都是数字", vbOKOnly + vbExclamation, "警告"
        txtRecharge.Text = ""
        txtRecharge.SetFocus
        Exit Sub
    End If

3、判断基础信息表的数据

    '连接基础信息表
    txtSQL = "select *from basicdata_info"
    Set mrc_BData = ExecuteSQL(txtSQL, msgText)
    '连接用户表
    txtSQL = "select *from user_info where userid='" & UserName & "'"
    Set mrc_User = ExecuteSQL(txtSQL, msgText)

    '判断是否有基础数据
    If mrc_BData.EOF Then‘如果没有基础数据
        Select Case mrc_User.Fields(2)’判断权限
            Case Is = 管理员
                frmBasicDataSet.Show
            Case Is = 操作员
                MsgBox "请联系管理员添加基本数据信息!", vbOKOnly + vbExclamation, "警告"
        End Select
        Exit Sub
    End If

4、判断是否大于最小金额

‘因为前面已经连接过数据库,所以就不写连接数据库的代码了,这里连接的是基本信息表
    '判断是否大于最小金额
    If Val(txtRecharge.Text) < trim(mrc_BData.Fields(5)) Then
    '因为数据库是字符串类型,所以要使用Val()转换函数
            MsgBox "金额不能低于设置的最小金额", vbOKOnly + vbExclamation, "警告"
        txtRecharge.Text = ""
        txtRecharge.SetFocus
        mrc_BData.Close
        Exit Sub
    End If

5、连接学生表,查看卡后是否存在,是否退卡

    '连接学生表
    txtSQL = "select*from student_info where cardno='" & txtCardNo.Text & "'"
    Set mrc_Stu = ExecuteSQL(txtSQL, msgText)
    '判断是否有该卡号
    If mrc_Stu.EOF Then
        MsgBox "此卡号不存在或已经不再使用", vbOKOnly + vbExclamation, "警告"
        mrc_Stu.Close
        txtCardNo.Text = ""
        txtRecharge.Text = ""
        Exit Sub
    End If

    ’判断卡号是否停止使用
    If Trim(mrc_Stu.Fields(10)) = "不使用" Then
        MsgBox "此卡号不存在或已经不再使用", vbOKOnly + vbExclamation, "警告"
        '基础数据窗体显示
        mrc_Stu.Close
        txtCardNo.Text = ""
        txtRecharge.Text = ""
        Exit Sub
    End If

6、从学生表中获得余额和学号

    Dim LastRecharge% '卡内的历史余额
    LastRecharge = Val(mrc_Stu.Fields(7)) '查看卡内的原始余额
    SID = mrc_Stu.Fields(1)  '传出来学号
    mrc_Stu.Close‘关闭数据库

7、从公共变量UserName获得充值教师

    Dim ReTea$ '用来存放充值的老师
    ReTea = Trim(UserName) '充值老师

8、计算金额并且获得其他数据

    Dim NowRecharge% '存放充值后的余额
    NowRecharge = LastRecharge + Val(txtRecharge.Text) '现在的金额
    ReDate = Format(Date, "yy-mm-dd") '充值日期
    ReTime = Format(Now, "hh:mm:ss") '充值时间

9、将数据写到对应的充值表中

 '连接充值表
    txtSQL = "select*from recharge_info"
    Set mrc_Re = ExecuteSQL(txtSQL, msgText)
    mrc_Re.AddNew
    mrc_Re.Fields(1) = Trim(SID) '学号
    mrc_Re.Fields(2) = Trim(txtCardNo.Text) '卡号
    mrc_Re.Fields(3) = CStr(Trim(txtRecharge.Text))   '充值金额
    mrc_Re.Fields(4) = Trim(ReDate) '充值日期
    mrc_Re.Fields(5) = Trim(ReTime) '充值时间
    mrc_Re.Fields(6) = Trim(UserName) '充值老师
    mrc_Re.Fields(7) = "未结账"
    mrc_Re.Update
    mrc_Re.Close

10、将充值后的余额写到学生表中

    '连接到学生表
    txtSQL = "select*from student_info where cardno='" & txtCardNo.Text & "'"
    Set mrc_Stu = ExecuteSQL(txtSQL, msgText)

    mrc_Stu.Fields(7) = CStr(NowRecharge)
    mrc_Stu.Update
    mrc_Stu.Close

结束语:
感谢您的阅读,希望我的分享对你有所帮助!

猜你喜欢

转载自blog.csdn.net/qizhi666/article/details/81941516
今日推荐