【VB】删除MSHFlexGrid控件中一行(机房问题)

来源:互联网 发布:mac 文件共享 编辑:程序博客网 时间:2024/06/06 02:38
一、删除MSHFlexGrid控件中的一行
”添加和删除用户“界面,功能实现方面能遇到问题的应该只有”删除“了,在原程序中我们看到,当我们点击MSHFlexGrid控件中的一行时,会选中这一行,然后点击删除,该条记录就会被删除,这是怎么实现的呢?首先,我们要声明一个变量:
Dim CURRENTROW As Integer
然后,在代码中:
Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)    With MSHFlexGrid1        .Row = .MouseRow        CURRENTROW = .Row        .Col = 0        .ColSel = .Cols - 1    End WithEnd SubPrivate Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)    With MSHFlexGrid1        .RowSel = CURRENTROW        .ColSel = .Cols - 1    End WithEnd Sub
另外,在调用数据库的时候代码写:
txtSQL = "select * from User_Info where UserID = '" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)
最后,运行程序,就会发现点击MSHFlexGrid控件中的任意一行,都可以全选,而且可以连接到数据库用于更改和删除。但是,这样写还是有一点小瑕疵,在优化博客中再做介绍。



二、信息分行显示
在“退卡(充值)”窗体中,点击退卡(充值),会显示所退卡的基本信息,包括“退卡卡号、应退款金额、退卡日期、退卡时间、退卡教师“,原代码中是加了一个list框,我想,对于信息栏,是显示信息用的,不会被用于用户修改信息,所以,我把list框换成了label框,问题来了,怎么分行显示数据库中内容呢?首先,连接好数据库,然后使用vbCrLf命令,具体格式如下:
lblDetail.Caption = "退卡卡号:" & mrc!cardno & vbCrLf & "应退款金额:" & mrc!cash & vbCrLf & "退卡日期:" & mrc!Date & vbCrLf & "退卡时间:" & mrc!Time & vbCrLf & "退卡教师:" & mrc!UserID





三、MDI主窗体的费用计算
在主窗体中,下机后会涉及到费用计算,这就涉及到了三个表。分别是BasicData表,OnLine表还有Line表,因为这既要查询该用户的类型(固定用户还是临时用户),还要查询该用户类型的价格以及该用户有无上机等。
首先,判断有无上机,只要判断该卡号在Online表中有无数据就可以了。然后,在Online表中调出该用户类型,在BasicData表中调出该类型价格,然后使用公式计算花费,我使用的是一个简单的公式
mrca.Fields(11) = Int((mrca.Fields(10) / 60) + 1) * Trim(mrcb.Fields(0))
 计算完成后数据会存储在Line表中。

在这里,用到了一个DateDiff函数来计算时间:
mrca.Fields(10) = DateDiff("n", mrca.Fields(9), mrca.Fields(7))
 计算出的时间是以分钟为单位。



四、ViewData的使用
当一段代码被重复的使用时,比如在Form Load中加载一些数据到控件中,但是窗体中的按钮还需要重复调用这些数据,为提高效率,就用一个ViewData将这段代码写下,每次使用时就Call ViewData就可以了。


0 0
原创粉丝点击