做机房的时候用到的很多次数的MSHflexgrid控件也是很重要的一部分,现在来总结一下它的用法。
一、它是从哪“变”出来的?
引用控件Microsoft Hierarchical FlexGrid Control 6.0(sp4) (oledb),看到了吧,它是以这样的形式出现的~
二、怎么用它显示数据库里面的内容?
要写出如下代码:
比如:
txtSQL = "select * from recharge_info where " '调用数据库的代码 txtSQL = txtSQL & "cardno='" & Trim(txtCardno.Text) & "'" txtSQL = txtSQL & " order by cardno "
Set mrc = ExecuteSQL(txtSQL, msgText) With myflexgrid '使用MSHflexgrid控件与数据库的联系 .ColWidth(3) = 1700 'rowheight 是行高 '这里可以设置它内部单元格的大小,防止数据太长显示不了 .Rows = 2 '默认2行 .CellAlignment = 4 '居中显示 .TextMatrix(1, 0) = "学号" '第一行,第一列的标题名称 .TextMatrix(1, 1) = "卡号" .TextMatrix(1, 2) = "充值金额" .TextMatrix(1, 3) = "日期" .TextMatrix(1, 4) = "时间" .TextMatrix(1, 5) = "用户ID" .TextMatrix(1, 6) = "状态" Do While Not mrc.EOF '这样可以防止空白行的出现 .Rows = .Rows + 1 .CellAlignment = 4 .TextMatrix(.Rows - 1, 0) = mrc.Fields(1) .TextMatrix(.Rows - 1, 1) = mrc.Fields(2) .TextMatrix(.Rows - 1, 2) = mrc.Fields(3) .TextMatrix(.Rows - 1, 3) = mrc.Fields(4) .TextMatrix(.Rows - 1, 4) = mrc.Fields(5) .TextMatrix(.Rows - 1, 5) = mrc.Fields(6) .TextMatrix(.Rows - 1, 6) = mrc.Fields(7) mrc.MoveNext Loop End With mrc.Close
三、如果需要条件查询应该怎么写呢?
四、如何删除单击选中的某一行?
这里,我深刻的感受到,自己思考的满足感,而不是直接就看别人的直接用。我想,这次算的上是自己做的吧,以后一定要自己先考虑,先查查,这样做才是正确的提高。
代码如下:
myflexgrid.SelectionMode = flexSelectionByRow '设置MSHFlexGrid1的选择方式是按行选择
'选中的那行,就是当前的row
txtSQL = "select * from online_info where cardno= '" & myflexgrid.TextMatrix(myflexgrid.Row, 2) & "'" Set mrc = ExecuteSQL(txtSQL, msgText) On Error GoTo err mrc.Delete mrc.Update mrc.Close myflexgrid.RemoveItem myflexgrid.Row<span style="white-space:pre"> </span>'移除当前选中的行
err: If Error = 3021 Then MsgBox "该学生已下机!" End If
一定要自己先查查思考怎么做,有的知识没有现成的答案,需要我们自己去筛选才行,经过思考的大脑才最闪亮~