前言:

今天实现机房收费系统——一般用户——学生上机状态查看——选中全部/部分下机部分收获很多!多亏了看光哥的博客,写的很清楚机房收费系统——上机状态查询之下机

过程:

要显示的表格式写查询,就会出来这样子

Private Sub 显示全部_Click()Dim txtSQL As StringDim MsgText As StringDim mrc As ADODB.Recordset  '作为的连接online_info表查询的结果集txtSQL = "select cardno,studentNo,ondate,OnTime,computer from OnLine_Info"Set mrc = ExecuteSQL(txtSQL, MsgText)If mrc.EOF = True ThenMsgBox "查询到0条记录", vbOKOnly + vbInformation, "提示!"ElseWith MSFlexGrid1Do While mrc.EOF = False.Rows = .Rows + 1
'                .CellAlignment = 4.TextMatrix(.Rows - 1, 0) = mrc!cardno.TextMatrix(.Rows - 1, 1) = mrc!studentNo.TextMatrix(.Rows - 1, 2) = mrc!ondate.TextMatrix(.Rows - 1, 3) = mrc!OnTime.TextMatrix(.Rows - 1, 4) = mrc!computer.TextMatrix(.Rows - 1, 5) = ""mrc.MoveNextLoopEnd WithEnd If
End Sub


接着我们可以看到它的

要想实现选中的下机,首先把选中的记录用一个符号√来标识这条记录!
这里定义了两个数组,分别来存储标识√的记录它的行号学号

i=0  有√标识的记录数目
for j=0 to .rows-1if 符合√ then记录行号到数组xh(s)记录学号到数组sz(z)i=i+1end if
next j
'j是真实的表格中的行数,通过标识√筛选遍历一遍,将有√记录的信息记录并保留到数组中,并且将有记录的行数计算出了
for Z=0 to i-1 (0~i-1=i行,也就是由记录的i行)通过数组引用一个个的学号,学号是主键,查询表得到记录集mrc3 basicdate_infomrc4 studeng_infomrc1 online_infomrc2 Line_infoZ=Z+1
next Z
'通过这样的一次遍历查询到数据库中的每一条记录
'因为选中的部分即将下机,引用这些记录的信息来进行结算帐目部分的计算!下机之前结账完毕!
'将选中的学生的数据进行更新,消费时间,消费金额,正常下机等等!修改包括student表和Line表
'最后从Online_info表中删除这些信息

接着,非常奇妙的部分就是如何实现部分

这段选择的代码真的是非常的巧妙,本意按下鼠标,选择要下机的学生;
前提是显示出来的信息都是没有选中的!在显示全部后所有的信息都是没有选中的状态!
在选的过程中:
按下鼠标之前,假设是没有选中的,按下后把它变为选中的状态;
按下鼠标之前,假设是选中的状态,按下后把它变为没有选中的状态;【二次按下鼠标就会需要这样的机制】

Private Sub msflexgrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)'如何选中不连续的行Dim col As IntegerIf MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5) = "√" ThenMSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5) = ""'改变行颜色(变为没选中之前的)For col = 0 To MSFlexGrid1.Cols - 1MSFlexGrid1.col = colMSFlexGrid1.CellBackColor = vbWhiteNext colElseMSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 5) = "√"'改变行颜色(选中后的颜色)For col = 0 To MSFlexGrid1.Cols - 1MSFlexGrid1.col = colMSFlexGrid1.CellBackColor = &HFFFF00 Next colEnd If

这部分的代码是复制的,但我觉得写得非常巧妙!

总结:

1.分析代码,不会就一点一点测试
2.写代码而不是改代码,学习一招致命。
3.把问题复杂化其实是了避免直接面都那么难的问题,找到本质,就不难!


4.选择单行MSFlexGrid或是单元格
MouseColLong返回鼠标光标的列坐标位置
MouseRowLong返回鼠标光标的行坐标位置

选中某个单元
MsFlexGrid.Row=1
MsFlexGrid.Col=1

5. Dim sTokens() As String ‘定义名为sTokens字符串(数组)
  Dim sTokens As string ‘定义名为sTokens字符串
  
6.trim:删除字串符的空格
 Trim$:去掉字符串左右两端的空格

机房收费系统【VB版】——选择下机相关推荐

  1. 机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务

    [前言] 尘封半年之久的机房合作再次被鹅大组长提上日程,为了积极响应组长的号召最近两日在噼里啪啦的弄机房!逐渐追回了开始合作时信誓旦旦的宣言(详情点击<机房收费系统合作版:开始团队合作之旅> ...

  2. 机房收费系统合作版(四):一路走来感谢有你相伴

    [前言] 伴随着1月25日米老师首次验收以及1月31日学术再次验收,鹅思晗小组的机房收费系统合作版终于画上一个圆满的句号. 回想这两个大牛和一只小菜的软件开发之旅还是蛮有趣的:特记于此,以此来纪念我这 ...

  3. 机房收费系统合作版(一):开始团队合作之旅

    时光荏苒,犹记去年这时开始自己人生的第一个系统(机房收费系统个人版)的开发,又至刚刚弄完的机房收费个人重构版,至此自己对这个系统已开发了二次,趁热打铁于是乎轰轰烈烈的开始了自己对机房收费的第三遍合作之 ...

  4. 机房收费系统合作版(三):利用备忘录模式实现取消修改基本数据

    [前言] 鹅思晗小组三个菜鸟成就一个系统,在这个过程中我有幸负责BLL层和外观层的实现.做过机房的朋友都知道,BLL层一个亮点就是设计模式. 至今犹记去年六月份鹅思晗小组成立后,那几天轰轰烈烈的探讨, ...

  5. 机房收费系统重构版:照葫芦画瓢

        跟随着培养计划的步伐,自己弄完三层后就风风火火的开始了自己机房重构之路!现在回首这一路,有苦过有兴奋过,有想放弃不再做的时候也有挑灯夜战本本没电自动关机的时候,这一切的一切组成了自己这段时间最 ...

  6. 项目总结——机房收费系统合作版

    机房合作就结束了,这次合作开发是第一次与别人一块儿开发一个系统,收获还是蛮大的.以下我总结几点算是经验吧,供以后參考: 管理上     1.计划     在准备合作开发之前我们三个去找米老师,老师给我 ...

  7. 机房收费系统重构版:那个系统我们一起遇到的问题

    前言:  总是说在问题中茁壮成长,俗话说光说不练假把式!回想之前确实停留在嘴上说说就完事了的假把式上,这次敲了第二次机房重构后根据自己的切身经历仔细回味了一番.相比于之前有了更深的理解吧,感觉还是有记 ...

  8. 【机房合作】机房收费系统合作版总结

    经历了为期一个半月的机房合作开发过程,自己的沟通表达,写作开发以及业务能力方面都有了很大程度的提升,在此来总结一下这个开发的过程. 一.前期准备的重要性 在我以前的认知里,写代码,做项目就是直接开干, ...

  9. 机房收费系统合作版(五)——初识托付

    托付是什么?你对托付熟悉吗?答案是肯定的!你对托付一定非常熟悉! 对托付的熟悉,正如你对一个倒立着的人一样熟悉!为什么这么说?由于方法的调用对于每个学习过编程的人来说都非常熟悉,并且是熟悉的不能再熟悉 ...

  10. 机房收费系统——需求分析

    前言 当我们在进行软件开发项目的时候,首先进行的步骤就是分析人员通过和用户的沟通交流,了解要开发的软件所要具有的功能,满足用户的需求. 正文 在开始敲机房收费系统之前,我们先要将ODBC数据源配置好, ...

最新文章

  1. h264 裸流打包成mp4 注意事项
  2. html给网页加图片背景颜色,0035 如何设置网页背景图和在网页中插入图片
  3. java 读取pdf、word、Excel文件
  4. thinkphp 后台管理框架swiftadmin的使用
  5. Python自学教程3-英语不好,变量怎么命名
  6. HTML段落前面怎么加黑点,Word文档段落前面的那个小黑点,是怎么搞出来得呀?...
  7. 使用Glide制作圆形图片
  8. vue二维码的批量生成及下载
  9. java.sql.SQLException: Incorrect string value: '\xE5\x85\x89004' for column 'department_name' at row
  10. 高职高考数学可以用计算机吗,将高职高考数学成绩从39分提到120分,3个月时间可能吗?...
  11. 鸿蒙系统1004无标题,win10 10041更新提示错误怎么处理
  12. python测试之道进阶_深入学习AB测试(一)-AB Testing With Python[项目实战]
  13. Code.V光学设计学习(三)——公差分析
  14. C++:C++11的牛逼特性
  15. 「程序员值得一看」| 传说中的“全球公认最健康的作息时间表”
  16. Linux中malloc与kmalloc
  17. 【python】7-10 将输入的字符串中的字符头尾间隔输出(PTA)
  18. 新书首发 | 人工智能有可能统治地球吗?
  19. Golang将密码盐加密
  20. 头文件和库文件区别,动态库和静态库的区别,动静态库的生成

热门文章

  1. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、
  2. 字符串全排列的问题 python和c语言实现
  3. python学习之pip常用命令
  4. 【Sql Server】DateBase-简单的Select查询
  5. 机房收费系统【VB版】——前期准备
  6. pytorch nn.Embedding
  7. MLIR中间表示与编译
  8. TVM性能评估分析(五)
  9. MindSpore 高阶优化器
  10. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事