首页 > 其他分享 >第一次机房,选中下机代码

第一次机房,选中下机代码

时间:2022-12-06 14:37:08浏览次数:43  
标签:Dim mrc2 TextMatrix String Fields 代码 机房 选中 MSHFlexGrid1

Private Sub frostudown_Click()
Dim txt As Boolean  '用来记录是否选中
Dim mrca As ADODB.Recordset            '用来存储OnLine_info 的sql语句
Dim txtSQLa As String               '用来接收返回的结果
Dim mrc2 As ADODB.Recordset            '用来更新Line_info 的sql语句
Dim txtSQL2 As String               '用来接收更新Line_info返回的结果
Dim mrconline As ADODB.Recordset      '用来计算上机时间
Dim txtSQLonline As String

    Dim mrcc As ADODB.Recordset            '用来存储BasicData_Info 的sql语句
    Dim txtSQLc As String               '用来接收BasicData_Info返回的结果
    Dim Rate As String          '记录固定用户每小时费用
    Dim tmpRate As String      '记录临时用户每小时费用
    Dim listTime As String   '记录最小时间
    Dim ConMoney As String  '上机花费
    Dim Cash As String      '用来记录余额
    Dim usertype As String  '记录用户类型
    Dim mrcb As ADODB.Recordset
    Dim txtSQLb As String
    Dim mrcd As ADODB.Recordset            '用来更新line_info表存储记录
    Dim txtSQLd As String               '用来删除上机表的结果
    Dim onlineMsgText As String     '接受信息
 m = MSHFlexGrid1.Rows - 1                          '定义m变量为检索次数
 For a = 1 To m                                   '循环次数
    If MSHFlexGrid1.TextMatrix(m, 5) = "√" And MSHFlexGrid1.TextMatrix(m, 0) <> "卡号" Then    '检索有√标识的行
               txtSQLc = "exec proc_BasicData_select"
        Set mrcc = ExecuteSQL(txtSQLc, MsgText)             '将设定的基本数据赋值给变量
            Rate = mrcc.Fields(0)
            tmpRate = mrcc.Fields(1)
            listTime = mrcc.Fields(3)
        mrcc.Close
        txtSQLb = "exec proc_sutdentinfo_select @cardno = '" & MSHFlexGrid1.TextMatrix(m, 0) & "'"
        Set mrcb = ExecuteSQL(txtSQLb, MsgText)
            usertype = Trim(mrcb.Fields(10))                '将用户类型记录
            Cash = Trim(mrcb.Fields(9))             '记录消费前账户余额
            
            txtSQLonline = "exec proc_OnLine_info @cardno = '" & MSHFlexGrid1.TextMatrix(m, 0) & "'"        '使用查询将所需要更新字段进行更新
            Set mrconline = ExecuteSQL(txtSQLonline, MsgText)
                consumtime = DateDiff("n", mrconline.Fields(9), Now) '计算消费时间,这里比较的数据库中的日期和时间在一起
            
                        If consumtime > listTime Then              '如果上机时间大于设置的最小时间
                            If usertype = "固定用户" Then
                                ConMoney = Int((Rate * consumtime) / 60 + 1)
                            Else
                                ConMoney = Int((tmpRate * consumtime) / 60 + 1)
                            End If
                            balance = Cash - ConMoney           '计算下机后的余额
                        Else
                            ConMoney = 0
                            balance = Cash
                        End If
                            mrcb.Fields(9) = Trim(Cash)           '将余额更新到学生表
                            mrcb.Update
                            mrcb.Close
        
        
            txtSQL2 = "exec proc_deplane @cardno = '" & MSHFlexGrid1.TextMatrix(m, 0) & "'"        '使用查询将所需要更新字段进行更新
            Set mrc2 = ExecuteSQL(txtSQL2, MsgText)
                mrc2.Fields(0) = Date
                mrc2.Fields(1) = Time
                mrc2.Fields(2) = Trim(consumtime)           '上机时间
                mrc2.Fields(3) = Trim(ConMoney)         '上机花费
                mrc2.Fields(4) = "正常下机"
                mrc2.Update
                mrc2.Close
                
            txtSQLd = "delete OnLine_Info where cardno = '" & MSHFlexGrid1.TextMatrix(m, 0) & "'"        '上机成功后将上机表的信息删除
            Set mrcd = ExecuteSQL(txtSQLd, onlineMsgText)
            MSHFlexGrid1.RemoveItem 2
        m = m - 1
        txt = True
    Else
        m = m - 1
    End If
    Next
    If txt = True Then
        MsgBox "下机成功", vbOKCancel + vbExclamation, "提示"
    Else
        MsgBox "您未进行选择,或选择有误", vbOKCancel + vbExclamation, "提示"
    End If
    txt = False
End Sub
Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim col As Integer              '选中相应行时,在选中行的第6列显示√
        If MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = "√" Then
            MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = ""       '恢复颜色
            For col = 0 To MSHFlexGrid1.Cols - 1
            MSHFlexGrid1.col = col
            MSHFlexGrid1.CellBackColor = vbWhite
            Next col
        Else
            MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = "√"  '改变颜色
            For col = 0 To MSHFlexGrid1.Cols - 1
                MSHFlexGrid1.col = col
                MSHFlexGrid1.CellBackColor = &HFFFF00
            Next col
        End If
    If MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) = "√" Then     '如果有选中的则可以用
        frostudown.Enabled = True
    Else
        frostudown.Enabled = False
    End If
        
End Sub

选择下机使用的方法是对进行点击选择的列进行一个标识,用它的卡号作为条件,对数据库进行修改工作。和全部下机的差别不是很大,重点涉及到了一个,第一行目录,不可进行选择,自己没有找到很好的方法,于是直接将指定的单元格不能为卡号作为一个判断的依据。将功能也成功实现。

标签:Dim,mrc2,TextMatrix,String,Fields,代码,机房,选中,MSHFlexGrid1
From: https://blog.51cto.com/u_15854472/5915749

相关文章

  • 第一次机房之下机
    下机相对与机房而言,涉及的表更多,涉及到的数据更新也更加的复杂,需要多次访问数据库进行增删改查,所以流程图在这里显得就尤为重要,下机我不是在一天完成的,有了流程图我才很好......
  • 第一次机房之上机
    经过两天的不断研究,终于将第一次机房的上机做了出来,不多废话,先贴流程图上机上机的基本思路就是,先查询卡号是否存在,是否已经上机,如果符合要求就添......
  • [个人学习笔记]卫生统计学R语言代码总结
    卫生统计学R语言代码总结目录前言不同分布相关函数统计描述数值变量集中位置离散程度正态性检验分类变量t检验方差分析假设检验两两比较秩和检验......
  • 我的开源代码启蒙
    一个程序员如果在五六年前说自己不碰或者不懂开源,应该还不足为奇。今天,一个程序员如果没有用过github等代码托管平台,可能让人怀疑TA是不是个假程序员。如今借鉴和引用开源......
  • 【开源代码】激光雷达惯性里程计和建图,多LIDAR输入、多尺度,基于面元高效地图更新
    以下内容来自从零开始机器人SLAM知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包论文##开源代码#SLICT:Multi-inputMulti-scaleSurfel-Based......
  • 在Node.JS中调用JShaman接口,实现JS代码加密
    在Node.JS中调用JShaman接口,实现JS代码加密。使用axios库实现https的post请求,代码如下:constaxios=require("axios");constjshamanConfig={//源码"js_code":......
  • Keil中使用arm section进行绝对地址定位并进行O2等级代码优化时报错: Error: L6982E
    当使用O0优化时,可以正常进行编译 2、当选择O2优化时,编译会报错 3、在motor_id.c文件中,使用armsection来将数据指定到特定位置#pragmaarmsectionrwdata=".ARM.__at_0......
  • LINUX下统计代码行数
    我们​​编程​​时常常想统计一下自己写过多少行代码了,这时候该怎么办呢?虽然Vim等编辑器中有代码行数显示,但是不能一个个打开然后加起来吧?这个时候需要用......
  • win10 蓝屏代码 IRQL NOT LESS OR EQUAL 问题排查(ing)
    环境:Win10故障症状:不定期蓝屏,重启蓝屏代码: IRQLNOTLESSOREQUAL 官方建议 尝试方法1:更新win10最新的补丁尝试方法2:重新安装显卡驱动(当前系统使用的是NvidiaG......
  • 谷歌插件之蓝湖代码生成器,iOS,Android,Swift,Flutter
    ​这是一个谷歌插件,当打开蓝湖网站时,可识别出蓝湖生成的html代码并显示插件面板,可生成iOS,Android,Swift,Flutter代码,非常方便效果请看下方GIF​ 如何下载插件......