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

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

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


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


目录
相关文章
|
12月前
|
缓存 监控 API
淘宝 API 接口使用的技术要点与注意事项
在数字化商业环境中,淘宝API为开发者提供了强大的工具,用于与淘宝平台交互,获取商品信息及处理交易等。本文总结了正确使用API的关键技术要点:注册认证、理解接口文档、遵守调用限制、确保参数准确性、保护数据安全、处理异常、性能优化、版本兼容、合规性及日志监控,帮助开发者实现高效、安全的程序开发。
|
XML 开发框架 前端开发
在WPF应用中,结合阿里矢量图标库使用Geometry图标
在WPF应用中,结合阿里矢量图标库使用Geometry图标
如何给一张图片设置帘子(水幕)效果,或者反向帘子效果?
如何给一张图片设置帘子(水幕)效果,或者反向帘子效果?
138 1
|
Java
【Java】Comparable和Comparator接口
【Java】Comparable和Comparator接口
547 0
【Java】Comparable和Comparator接口
|
Web App开发 达摩院 量子技术
先把一两个量子比特的精度做到极致:阿里达摩院量子实验室刚刚破了项世界纪录
先把一两个量子比特的精度做到极致:阿里达摩院量子实验室刚刚破了项世界纪录
204 0
|
Java
Java:HttpURLConnection发送GET和POST请求
Java:HttpURLConnection发送GET和POST请求
310 0
|
JavaScript
Vue中Vue.set()和this.$forceUpdate()的使用
Vue中Vue.set()和this.$forceUpdate()的使用
|
人工智能 JSON 文字识别
视觉智能开放平台【文字识别】类目新增五个AI算法,快来看看吧~
尊敬的开发者您好,感谢您对阿里云视觉智能平台的支持,近期平台在【文字识别】大类下上线了5个视觉AI算法,分别是文档结构化还原识别、中国护照识别、护照MRZ码识别、外卖单识别以及验证码识别,接下来给您逐一介绍下。 
视觉智能开放平台【文字识别】类目新增五个AI算法,快来看看吧~
|
Java Spring
Spring(十四)之编程性事务(续)
Spring 编程式事务管理 编程式事务管理方法允许你在对你的源代码编程的帮助下管理事务。这给了你极大地灵活性,但是它很难维护。 在我们开始之前,至少要有两个数据库表,在事务的帮助下我们可以执行多种 CRUD 操作。
1301 0