加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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



?

方法评价:

此方法添加数据用户不会看到数据添加的过程,即数据添加工程中不会有滞后性.读取速度明显的提升.但如代码中显示的那样需要有对资源的释放过程不然容易出错.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读