第一次机房收费——下机流程

简介: 第一次机房收费——下机流程

 咱们上篇文章写了上机的流程,该篇文章就写了下机的流程,首先必不可少的还是流程图。


1.下机流程图



2.下机流程部分代码


Private Sub comOffLine_Click() '点击下机按钮
'定义消费时间
    Dim consumetime As String
    Dim txtSQL As String
    Dim MsgText As String
    Dim Day, Minute As String '计算日期差与时间差
    Dim mrcstu As ADODB.Recordset  '连接student表
    Dim mrcData As ADODB.Recordset '连接BasicData表
    Dim mrcOnline As ADODB.Recordset '连接Online表
    Dim mrcline As ADODB.Recordset '连接line表
'判断卡号是否为空
    If Trim(txtCardNo.Text) = "" Then
        MsgBox "卡号为空!", 64, "温馨提示"
        txtCardNo.SetFocus
        Exit Sub
    End If
'判断该号是否上机
    txtSQL = "select * from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
    Set mrcOnline = ExecuteSQL(txtSQL, MsgText)
'连接student表
    txtSQL = "select * from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
    Set mrcstu = ExecuteSQL(txtSQL, MsgText)
    If mrcOnline.EOF = True Then
        MsgBox "该号没有上机", 64, "温馨提示"
        txtCardNo.Text = ""
        txtCardNo.SetFocus
    Else
        '计算消费时间
        Day = DateDiff("9", mrcOnline.Fields(6), Date) '计算上机下机的日期查
        Minute = DateDiff("n", mrcOnline.Fields(7), Time) '计算上机下机的同日时间差
        txtCTime.Text = 3600 * Val(Day) + Minute          '计算总时间差,分钟为单位
        '消费时间
        consumetime = txtCTime.Text
        txtSQL = "select * from BasicData_info"
        Set mrcData = ExecuteSQL(txtSQL, MsgText)
        '判断是否小于准备时间
        If consumetime < mrcData.Fields(4) Then
            txtCMoney.Text = "0"
            txtCTime.Text = "0"
            txtOffdate.Text = Date
            txtOfftime.Text = Time
            txtBalance.Text = Trim(mrcstu.Fields(7))
        Else
            If Trim(mrcOnline.Fields(1)) = "固定用户" Then
                'round是将数据四舍五入,保留两位小数
                txtCMoney.Text = Round((mrcData.Fields(0)) / 60 * consumetime)
                txtBalance.Text = Val(mrcstu.Fields(7)) - Val(txtCMoney.Text)
            Else
                txtCMoney.Text = Round((mrcData.Fields(1) / 60 * consumetime))
                '计算临时用户金额
                txtBalance.Text = Val(mrcstu.Fields(7)) - Val(txtCMoney.Text)
                mrcstu.Fields(7) = Trim(txtBalance.Text)
                mrcstu.Fields(11) = "未结账"
            End If
            txtSQL = "select * from Line_info where cardno='" & Trim(txtCardNo.Text) & "'"
            Set mrcline = ExecuteSQL(txtSQL, MsgText)
            mrcline.AddNew '添加新纪录
            mrcline.Fields(1) = mrcOnline.Fields(0) '卡号
            mrcline.Fields(2) = mrcOnline.Fields(2) '学号
            mrcline.Fields(3) = mrcOnline.Fields(3) '姓名
            mrcline.Fields(4) = mrcOnline.Fields(1) '系别
            mrcline.Fields(5) = mrcOnline.Fields(5) '性别
            mrcline.Fields(6) = mrcOnline.Fields(6) '上机日期
            mrcline.Fields(7) = mrcOnline.Fields(7) '上机时间
            mrcline.Fields(8) = Date '下机日期
            mrcline.Fields(9) = Time '下机日期
            mrcline.Fields(10) = consumetime '消费时间
            mrcline.Fields(11) = Trim(txtCMoney.Text) '消费金额
            mrcline.Fields(12) = Trim(txtBalance.Text) '余额
            mrcline.Fields(13) = "正常下机"
            mrcline.Fields(14) = Trim(VBA.Environ("computername")) '计算机环境
            mrcline.Update '数据更新
            mrcstu.Fields(7) = Trim(txtBalance.Text) '学生表里,,余额
            mrcstu.Fields(11) = "未结账"
            mrcstu.Update
            '显示数据
            '将student表内的数据展示出来
            txtType.Text = Trim(mrcstu.Fields(14)) '类型
            txtSID.Text = Trim(mrcstu.Fields(1)) '学号
            txtName.Text = Trim(mrcstu.Fields(2)) '姓名
            txtDept.Text = Trim(mrcstu.Fields(4)) '系别
            txtSex.Text = Trim(mrcstu.Fields(3)) '性别
            txtOnDate.Text = Trim(mrcline.Fields(6))   '上机日期
            txtOnTime.Text = Trim(mrcline.Fields(7)) '上机时间
            txtOffdate.Text = Date '下机日期
            txtOfftime.Text = Time '下机时间
            MsgBox "下机成功", 64, "温馨提示"
            mrcOnline.Delete
        End If
    End If
End Sub


目录
相关文章
|
SQL 安全 网络协议
常用和不常用端口一览表收藏
大家在学习计算机的时候,对于最常用的几个端口比如80端口肯定有很深的印象,但是对于其他一些不是那么常用的端口可能就没那么了解。所以,在一些使用频率相对较高的端口上,很容易会引发一些由于陌生而出现的错误,或者被黑客利用某些端口进行入侵。
4554 0
|
10月前
|
负载均衡 Java API
Spring Cloud是什么及基本特性都有哪些?
Spring Cloud 是用于构建健壮云应用的框架,包含多个子项目。其核心组件如Eureka(服务注册与发现)、Hystrix(熔断器)、Ribbon(负载均衡)等,帮助开发者快速实现微服务架构。Spring Cloud 提供了服务注册与发现、分布式配置、路由、断路器等功能,简化了微服务开发与管理。本文将重点介绍服务注册与发现及分布式配置两大特性。
537 5
|
XML 开发框架 前端开发
在WPF应用中,结合阿里矢量图标库使用Geometry图标
在WPF应用中,结合阿里矢量图标库使用Geometry图标
|
机器学习/深度学习 PyTorch 算法框架/工具
【文献学习】Phase-Aware Speech Enhancement with Deep Complex U-Net
文章介绍了Deep Complex U-Net模型,用于复数值的语音增强,提出了新的极坐标掩码方法和wSDR损失函数,并通过多种评估指标验证了其性能。
252 1
|
XML JavaScript Java
解析XML文件的几种方法
解析XML文件的几种方法
|
网络架构
|
存储 数据采集 监控
智慧工地整体方案,实现现场各类工况数据采集、存储、分析与应用
“智慧工地整体方案”以智慧工地物联网云平台为核心,基于智慧工地物联网云平台与现场多个子系统的互联,实现现场各类工况数据采集、存储、分析与应用。通过接入智慧工地物联网云平台的多个子系统板块,根据现场管理实际需求灵活组合,实现一体化、模块化、智能化、网络化的施工现场过程全面感知、协同工作、智能分析、风险预控、知识共享、互联互通等业务,全面满足建筑施工企业精细化管理的业务需求,智能化地辅助建筑施工企业进行科学决策,促进施工企业监管水平的全面提高。
758 0
|
存储 Rust Shell
Rust 开发命令行工具(上)(二)
Rust 开发命令行工具(上)(二)
286 0
|
Java Spring
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
294 0