机房收费系统之结账

本文介绍了一个机房管理系统的实现思路,包括用户信息查询、结账流程处理、数据汇总等功能。重点介绍了通过用户ID查询信息、结账更新操作及汇总计算等关键代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

结账部分是机房的一个重点;


思路:
1.通过UserID查询姓名;(通过Combo1的Click事件,将表中姓名栏信息赋给Combo2)
2.点击SSTab控件查询到相应表中信息;
3.结账更新相应表中信息(将student表,recharge表,cancelCard表中未结账部分更新为结账,并更新checkDay和ckeckWeek表)


问题及重点代码:
1.数据类型不要随便更改,会报错;
2.汇总部分:

售卡张数=注册的卡号个数
退卡张数=cancelCard表中退卡的个数
总售卡数=售卡张数-退卡张数
退卡金额=退卡的金额数总和
充值金额=student表中的注册金额和充值金额总和(充值金额会更新到student表recharge列中)
临时收费总和=上机中花费的金额总和(line表中的Cost金额)
应收金额=临时收费金额+充值金额-退卡金额

Private Sub Combo1_Click()
    txtSQL3 = "select * from User_Info where UserID = '" & Trim(Combo1.Text) & "'"
    Set mrc3 = ExecuteSQL(txtSQL3, MsgText)
    Combo2.Text = mrc3.Fields(3)          '把查询到的信息赋值给Combo2.Text;
End Sub

结账部分:
Private Sub Command1_Click()   '点击结账让文本框清空
    txtCard.Text = ""
    txtCancelCard.Text = ""
    ...

    txtSQL5 = "select * from checkDay_Info"
    Set mrc5 = ExecuteSQL(txtSQL5, MsgText)

    txtSQL = "select sum(cash) from student_Info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)

    mrc5.AddNew      '更新checkDay表
    mrc5.Fields(0) = mrc.Fields(0)
    mrc5.Fields(1) = Val(txtAddCash.Text)
    mrc5.Fields(2) = Val(txtCostCash.Text)
    mrc5.Fields(3) = Val(txtCancelCash.Text)
    mrc5.Fields(4) = Val(txtAllCash.Text)
    mrc5.Fields(5) = Date
    mrc5.Update
    mrc5.Close

    mrc6.AddNew     '将表中记录更新到checkWeek表中
    mrc6.Fields(0) = mrc.Fields(0)
    mrc6.Fields(1) = Val(txtAddCash.Text)
    mrc6.Fields(2) = Val(txtCostCash.Text)
    mrc6.Fields(3) = Val(txtCancelCash.Text)
    mrc6.Fields(4) = Val(txtAllCash.Text)
    mrc6.Fields(5) = Date
    mrc6.Update
    mrc6.Close

    '以学生表为例,更新学生表
    txtSQL = "select * from student_Info where UserID = '"        & Trim(Combo1.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)

        Do While Not mrc.EOF
            mrc!Ischeck = "已结账"
            mrc.Update
            mrc.MoveNext
        Loop
    mrc.Close

    '同样更新money表
    '更新退卡表
    MsgBox "结账成功!"
End Sub
Private Sub SSTab_Click(PreviousTab As Integer)

'以购卡为例,代码如下:
    txtSQL = "select * from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    '将查询内容显示在表格控件中
    With MSHFlexGrid1
    .Rows = 2
    .CellAlignment = 4
    .TextMatrix(1, 0) = "学号"
    .TextMatrix(1, 1) = "卡号"
    .TextMatrix(1, 2) = "日期"
    .TextMatrix(1, 3) = "时间"
    '判断是否移动到数据集对象的最后一条记录
    Do While Not mrc.EOF
    .Rows = .Rows + 1
    .CellAlignment = 4
    .TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(1))
    .TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(0))
    .TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(11))
    .TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(12))
    '移动到下一条记录
    mrc.MoveNext
    Loop
    End With

充值、退卡、临时用户同上;

    txtSQL2 = "select sum(cancel_Cash) from cancelCard_Info where status = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
    Set mrc2 = ExecuteSQL(txtSQL2, MsgText)

    txtSQL = "select sum(cash) from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)

    txtSQL4 = "select sum(costCash) from line_Info "
    Set mrc4 = ExecuteSQL(txtSQL4, MsgText)


        If IsNull(Trim(mrc.Fields(0))) Then '为空
            txtAddCash.Text = "0"
        Else
            txtAddCash.Text = mrc.Fields(0)
        End If
        If IsNull(Trim(mrc2.Fields(0))) Then
            txtCancelCash.Text = "0"
        Else
            txtCancelCash.Text = mrc2.Fields(0)
        End If
        If IsNull(Trim(mrc4.Fields(0))) Then
            txtCostCash.Text = "0"
        Else
            txtCostCash.Text = mrc4.Fields(0)
        End If

        txtAllCash.Text = Val(txtAddCash.Text) + Val(txtCostCash.Text) - Val(txtCancelCash.Text)
    If SSTab.Caption = "退出" Then
        Unload Me
    End If
End Sub
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值