机房收费系统之 退卡流程

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

退卡流程 文字解释:

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.Close
End Sub




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值