机房收费系统之 退卡流程

来源:互联网 发布:云校大数据技术研究院 编辑:程序博客网 时间:2024/04/30 03:24

退卡代码不难,重点是理清思路。

退卡流程 文字解释:

1,判定输入的是否为空 是否为数字。

用到texttst,isnumber

2,看该卡是否注册 注销

a,用到数据库中,student(即基本信息情况表)。若不在此表中,则未注册。

b,仍用student表。字段中的“status”,用于标记。若为“不使用”,则已经注销。(注:最后退卡成功后,要将此标志位改为“不使用”)

3,是否正在上机

用到数据库中的表online(记录上机)。

4,满足退卡条件,则继续操作。(不分先后)

a,将退卡信息添加到退卡表中

b, 显示退卡信息 ,提示退卡成功

c,修改student中使用和结账状态

d,更改其他表中关于该卡的余额


流程图如下:



实现代码如下:

Private Sub cmdCancelCard_Click()    Dim mrc1 As ADODB.Recordset '查student表,用与检验是否存在改用户,状态位用于标记是否注销    Dim mrc2 As ADODB.Recordset '查online 表,用于判断用户是否在上机    Dim mrc3 As ADODB.Recordset '查cancelCard 表,用于退卡账户的操作 更新    Dim msgString As String    Dim txtSQL As String    Dim Balance As Single    Dim number As Integer    Dim userId1 As String        If Not testtxt(Trim(TxtCancelCardId)) Then        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "提示"    Else        If Not IsNumeric(TxtCancelCardId) Then            MsgBox "卡号请输入数字!", vbOKOnly + vbExclamation, "提示"        End If    End If        '判定此卡是否存在 是否注销    txtSQL = "select * from student where cardNo='" & TxtCancelCardId.Text & "'"    Set mrc1 = ExecuteSQL(txtSQL, msgString)                If mrc1.EOF = True Then                MsgBox "此卡不存在!", vbOKOnly + vbExclamation, "提示"                TxtCancelCardId.SetFocus                TxtCancelCardId.Text = ""                Exit Sub            Else                If Trim(CStr(mrc1.Fields(10))) = "不使用" Then                        MsgBox "该卡已注销!", vbExclamation + vbOKOnly, "警告"                        TxtCancelCardId.SetFocus                        TxtCancelCardId.Text = ""                        Exit Sub                End If                                txtCancelCash.Text = Trim(mrc1.Fields(8)) '获取余额                    number = Trim(mrc1.Fields(1))                    userId1 = Trim(mrc1.Fields(6))                               End If           '表online 判断该卡是否正在上机    txtSQL = "select * from online where Cardno='" & Trim(TxtCancelCardId.Text) & "'"    Set mrc2 = ExecuteSQL(txtSQL, msgString)    If mrc2.EOF Then        mrc2.Close    Else        If Trim(mrc2.Fields(10)) = "上机状态" Then            MsgBox "该卡正在上机!", vbExclamation + vbOKOnly, "警告"            Exit Sub        End If        mrc2.Close    End If        '表cancelCard 用于退卡账户的操作 更新    txtSQL = "select * from cancelCard where CardNo='" & Trim(TxtCancelCardId.Text) & "'"    Set mrc3 = ExecuteSQL(txtSQL, msgString)    mrc3.AddNew    mrc3.Fields(0) = Trim(TxtCancelCardId.Text)    mrc3.Fields(1) = Trim(mrc1.Fields(0))    mrc3.Fields(2) = Trim(mrc1.Fields(7))    mrc3.Fields(3) = Date    mrc3.Fields(4) = Time    mrc3.Fields(5) = Trim(userId1)    mrc3.Fields(6) = "未结账"    mrc3.Update    txtShow.Enabled = False        '在文本框中显示信息    txtShow.FontSize = 16    txtShow.Text = "退卡卡号:" & Trim(mrc3.Fields(0)) & vbCrLf & vbCrLf & _                           "应退款金额:" & Trim(txtCancelCash.Text) & vbCrLf & vbCrLf & _                           "退卡日期:" & Date & vbCrLf & vbCrLf & _                           "退卡时间:" & mrc3.Fields(4) & vbCrLf & vbCrLf & _                           "办理退卡老师:" & mrc3.Fields(5)                               mrc3.Close    MsgBox "退卡成功!", vbExclamation + vbOKOnly, "退卡"    txtShow.Text = ""    TxtCancelCardId = ""    txtCancelCash.Text = ""        '    '修改student中余额和状态(状态的作用是标记)    mrc1.Fields(7) = 0    mrc1.Fields(10) = "不使用"    mrc1.Fields(11) = "未结账"    mrc1.Update    mrc1.CloseEnd Sub




原创粉丝点击