机房收费系统(六)——退卡总结

概述

机房收费系统最难的是什么?其实作到今天我才明白一些,数据库的调用、组合查询、上下机。其他方面都还是很简单的,特别是跟学生系统差不多。
退卡也是如此,最麻烦的我感觉是数据库的调用、结账。因为退卡的时候需要将之前的所有打开的表都要用到,而且还需要将已经消费的卡进行结算。所以就不难看出难点在哪。下面我先从思路上开始顺。

流程图

1.通过流程图可以清晰的看到先判断各控件是否为空;
2.然后查找数据表;
3.更新数据表。
这里写图片描述

主要代码

Private Sub cmdOK_Click()
    Dim mrc As ADODB.Recordset                 'User表
    Dim msgtext As String
    Dim txtSQL As String

    Dim Stumrc As ADODB.Recordset           'student表
    Dim StuMsgText As String
    Dim StutxtSQL As String

    Dim mrc3 As ADODB.Recordset             'cancelcard_info 表
    Dim MsgText3 As String
    Dim txtSQL3 As String

    If Not Testtxt(txtCardNo.Text) Then
        MsgBox "请输入卡号", vbOKOnly, "提示"
        txtCardNo.SetFocus
        Exit Sub
    End If

    StutxtSQL = "select*from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
    Set Stumrc = ExecuteSQL(StutxtSQL, StuMsgText)

 On Error GoTo 1:

     If Trim(Stumrc.Fields(0)) <> Trim(txtCardNo.Text) Then         ''判断卡号是否存在,是否停用,是否正在上机
        MsgBox "该用户不存在!", vbOKOnly, "提示"
        txtCardNo.SetFocus

    Else

    StutxtSQL = "select*from student_info"
    Set Stumrc = ExecuteSQL(StutxtSQL, StuMsgText)

    If Stumrc.Fields(10) = "不使用" Then
        MsgBox "该卡已经停用!", vbOKOnly, "提示"
        txtCardNo.SetFocus

    Else

    txtSQL = "select*from User_info"
    Set mrc = ExecuteSQL(txtSQL, msgtext)

    StutxtSQL = "select*from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
    Set Stumrc = ExecuteSQL(StutxtSQL, StuMsgText)

    txtSQL3 = "select*from cancelcard_info"
    Set mrc3 = ExecuteSQL(txtSQL, msgtext)

    txtReturn.Text = Stumrc.Fields(7)

        Text3.Text = Text3.Text & vbCrLf & "退卡卡号:" & Trim(txtCardNo.Text)
        Text3.Text = Text3.Text & vbCrLf & "应退款余额:" & Stumrc.Fields(7)          '即“Chr(13) & Chr(10)”(回车符与换行符连接在一起),是换行的意思
        Text3.Text = Text3.Text & vbCrLf & "退款日期:" & Date
        Text3.Text = Text3.Text & vbCrLf & "退款时间:" & Time
        Text3.Text = Text3.Text & vbCrLf & "退款老师:" & userid

        mrc3.AddNew
        mrc3.Fields(0) = Stumrc.Fields(1)
        mrc3.Fields(1) = txtCardNo.Text
        mrc3.Fields(2) = Stumrc.Fields(7)
        mrc3.Fields(3) = Date
        mrc3.Fields(4) = Time
        mrc3.Fields(5) = userid
        mrc3.Fields(6) = "未结账"
        mrc3.Update
        mrc3.Fields(10) = "不使用"
        Stumrc.Update
        mrc3.Close
        Stumrc.Close

        MsgBox "退卡成功!", vbOKOnly, "提示"
        Me.Hide
    End If
End If

1:
    If Err = 3021 Then
        MsgBox "该卡号不存在,请重新输入", vbOKOnly, "提示"
    End If

End Sub

猜你喜欢

转载自blog.csdn.net/whc888666/article/details/80565339