【机房收费系统】--充值

   最近在做机房收费系统,跟之前学生不同的是,每个窗体不仅查一个表,所有逻辑思维就显得格外的重要。

   看师哥师姐的博客会发现,他们在敲一个窗体的时候会画一张流程图,也可以说是自己的逻辑,先判断什么在判断什么,画图工具是一个网站,我把连接放在下面。

                       流程图工具

   一张图胜过前言万语,这是我画的充值窗体的流程图!
这里写图片描述

   思路理清了,就着手写代码,我的代码有很多冗余的地方,还请鉴赏!

    Dim mrc As ADODB.Recordset
    Dim txtsql As String
    Dim msgtext As String
    Dim mrcc As ADODB.Recordset

    If Not testtxt(txtSID.Text) Then
        MsgBox "请输入卡号!", 48, "警告"
        txtSID.SetFocus
        Exit Sub
    End If

    If Not testtxt(txtRecharge.Text) Then
        MsgBox "请输入金额!", 48, "警告"
        txtRecharge.SetFocus
        Exit Sub
    End If

    txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

    If mrc.EOF Then
        MsgBox "该卡号不存在!", 48, "警告"
        mrc.Close
        txtSID.SetFocus
    Exit Sub
    Else
        mrc.Close
    End If

    txtsql = "select * from BasicData_info"
    Set mrc = ExecuteSQL(txtsql, msgtext)


    If Val(txtRecharge.Text) < mrc.Fields(5) Then
    MsgBox "充值金额不能小于" & Trim(mrc.Fields(5)) & "元", 48, "警告"
    mrc.Close
    Exit Sub
    End If

    mrc.Close

    txtsql = "select * from recharge_info where cardno = '" & Trim(txtSID.Text) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

    txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
    Set mrcc = ExecuteSQL(txtsql, msgtext)

    If mrc.EOF Then
        mrc.AddNew
        mrc.Fields(1) = mrcc.Fields(1)
        mrc.Fields(2) = Trim(txtSID.Text)
        mrc.Fields(3) = Val(Trim(txtRecharge.Text)) + mrc.Fields(3)
        mrc.Fields(4) = Trim(Date)
        mrc.Fields(5) = Trim(Time)
        mrc.Fields(6) = UserName
        mrc.Fields(7) = Trim("未结账")
        mrc.Update
        mrc.Close
        mrcc.Close
    Else
        mrc.Fields(1) = mrcc.Fields(1)
        mrc.Fields(2) = Trim(txtSID.Text)
        mrc.Fields(3) = Val(Trim(txtRecharge.Text)) + mrc.Fields(3)
        mrc.Fields(4) = Trim(Date)
        mrc.Fields(5) = Trim(Time)
        mrc.Fields(6) = UserName
        mrc.Fields(7) = Trim("未结账")
        mrc.Update
        mrc.Close
        mrcc.Close
    End If

    txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

    mrc.Fields(7) = Val(Trim(txtRecharge.Text)) + mrc.Fields(7)
    mrc.Fields(12) = Trim(Date)
    mrc.Fields(13) = Trim(Time)
    mrc.Update
    mrc.Close

    txtsql = "select * from student_info where cardno = '" & txtSID.text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)

    Text1.Text = "充值卡号:" & txtSID.Text & vbCrLf & "上次卡内的余额:" & Trim(mrc.Fields(7)) - txtRecharge.Text & vbCrLf & "现在卡内的余额:" & mrc.Fields(7) & vbCrLf & "充值日期:" & mrc.Fields(12) & vbCrLf & "充值时间:" & mrc.Fields(13) & vbCrLf & "充值老师:" & UserName

    MsgBox "充值成功!", 48, "提示"

猜你喜欢

转载自blog.csdn.net/ywq1016243402/article/details/80460411