Mshflexgrid控件填写数据时的添加方式的改变,加快数据读取速度.
发布时间:2020-12-15 04:41:10 所属栏目:百科 来源:网络整理
导读:最古老的方法: 1.当然也是初学者最常用的方法,从可理解性和代码量来说都是最简单的了。(以添加连续数字为例) Dim i,j,k As Integer'设置行列数With MSHFlexGrid1.Rows = 5.Cols = 5End With'添加表头MSHFlexGrid1.Row = 0For i = 1 To MSHFlexGrid1.Cols
最古老的方法: 1.当然也是初学者最常用的方法,从可理解性和代码量来说都是最简单的了。(以添加连续数字为例) Dim i,j,k As Integer
'设置行列数
With MSHFlexGrid1
.Rows = 5
.Cols = 5
End With
'添加表头
MSHFlexGrid1.Row = 0
For i = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Col = i
MSHFlexGrid1.Text = "列" & i
Next
'添加记录
k = 1
For i = 1 To MSHFlexGrid1.Rows - 1
For j = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = j
MSHFlexGrid1.Text = k
k = k + 1
Next
Next
方法评价: 此方法代码量少,对于添加读取数据表中的信息很方便。最大的缺点就是数据的读取速度太慢。对于大量的数据来说读取时有明显的滞后性 2.变单行为整列: MSHFlexGrid1.Cols = 5
MSHFlexGrid1.AddItem vbTab & "1" & vbTab & "2" & vbTab & "3" & vbTab & "4"
MSHFlexGrid1.AddItem vbTab & "5" & vbTab & "6" & vbTab & "7" & vbTab & "8"
MSHFlexGrid1.AddItem vbTab & "9" & vbTab & "10" & vbTab & "11" & vbTab & "12"
MSHFlexGrid1.AddItem vbTab & "13" & vbTab & "14" & vbTab & "15" & vbTab & "16"
'删除默认空白行
'此操作不能放在 MSHFlexGrid1.Cols = 5 后,否则出错: Cannot remove last non-fixed row.
MSHFlexGrid1.RemoveItem (1)
方法评价: 此方法逐行的添加数据,一定程度上提高的读取数据的速度。但对于超大容量的数据还是存在数据显示滞后的现象。当然也可以用for循环添加想要添加的数据,即和第一种方法结合使用这里不再举例. ? 3.绑定到数据库一次性完整添加: Option Explicit Dim objConn As ADODB.Connection Dim objRs As ADODB.Recordset Private Sub Form_Load() On Error Resume Next Set objConn = New ADODB.Connection Set objRs = New ADODB.Recordset objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 文件路径;" objConn.Open objRs.CursorLocation = adUseClient objRs.Open "Select ProductId,ProductName,Discontinued FROM Products",objConn,adOpenStatic,adLockReadOnly Set MSHFlexGrid1.DataSource = objRs If Err.Number <> 0 Then MsgBox Err.Description End If On Error GoTo 0 End Sub '释放资源 Private Sub Form_Unload(Cancel As Integer) '不操作此步会出错:The current row is not available If TypeName(MSHFlexGrid1.DataSource) <> "Nothing" Then Set MSHFlexGrid1.DataSource = Nothing End If If TypeName(objRs) <> "Nothing" Then objRs.Close Set objRs = Nothing End If If TypeName(objConn) <> "Nothing" Then objConn.Close Set objConn = Nothing End If End Sub ? 方法评价: 此方法添加数据用户不会看到数据添加的过程,即数据添加工程中不会有滞后性.读取速度明显的提升.但如代码中显示的那样需要有对资源的释放过程不然容易出错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |