失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 机房收费系统【VB版】——选择下机

机房收费系统【VB版】——选择下机

时间:2022-02-03 20:58:23

相关推荐

机房收费系统【VB版】——选择下机

前言:

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

过程:

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

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 IfEnd 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+1next 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版】——选择下机》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。