急!!!要将记录集的数据写入listview!
请高手看看我的代码!有没有办法提高速度啊?
这样的方法,显示的太慢,闪屏!
请问有没有其他的方法啊??将RecordSet数据填入ListView中
Public Sub FillLview(lvwTarget As ListView, IconSet As ImageList, rdset As ADODB.Recordset, _
FieldNames() As String, Number As Integer)
Dim itmX As ListItem
Dim i, j As Integer
lvwTarget.ListItems.clear
If rdset.State = adStateOpen Then
If Not rdset.EOF Then
'lvwTarget.SmallIcons = IconSet
rdset.MoveFirst
Do Until rdset.EOF
Set itmX = lvwTarget.ListItems.Add()
j = j + 1
If j < 10 Then
itmX.Text = "0" + Trim(Str(j))
Else
itmX.Text = j
End If
For i = 1 To Number - 1
If Not IsNull(rdset.Fields(FieldNames(i)).Value) Then
Select Case True
Case Trim(rdset.Fields(FieldNames(i)).Value) = "1"
itmX.SubItems(i) = "√"
'itmX.SmallIcon = 1
Case Trim(rdset.Fields(FieldNames(i)).Value) = "0"
itmX.SubItems(i) = "×"
'itmX.SmallIcon = 2
Case Else
itmX.SubItems(i) = rdset.Fields(FieldNames(i)).Value
End Select
End If
Next i
rdset.MoveNext
Loop
lvwTarget.SortKey = 0
lvwTarget.SortOrder = lvwAscending
End If
End If
End Sub
请高手看看我的代码!有没有办法提高速度啊?
这样的方法,显示的太慢,闪屏!
请问有没有其他的方法啊??将RecordSet数据填入ListView中
Public Sub FillLview(lvwTarget As ListView, IconSet As ImageList, rdset As ADODB.Recordset, _
FieldNames() As String, Number As Integer)
Dim itmX As ListItem
Dim i, j As Integer
lvwTarget.ListItems.clear
If rdset.State = adStateOpen Then
If Not rdset.EOF Then
'lvwTarget.SmallIcons = IconSet
rdset.MoveFirst
Do Until rdset.EOF
Set itmX = lvwTarget.ListItems.Add()
j = j + 1
If j < 10 Then
itmX.Text = "0" + Trim(Str(j))
Else
itmX.Text = j
End If
For i = 1 To Number - 1
If Not IsNull(rdset.Fields(FieldNames(i)).Value) Then
Select Case True
Case Trim(rdset.Fields(FieldNames(i)).Value) = "1"
itmX.SubItems(i) = "√"
'itmX.SmallIcon = 1
Case Trim(rdset.Fields(FieldNames(i)).Value) = "0"
itmX.SubItems(i) = "×"
'itmX.SmallIcon = 2
Case Else
itmX.SubItems(i) = rdset.Fields(FieldNames(i)).Value
End Select
End If
Next i
rdset.MoveNext
Loop
lvwTarget.SortKey = 0
lvwTarget.SortOrder = lvwAscending
End If
End If
End Sub
...
for i=1 to rdset.recordset 'Do Until rdset.EOF
...
next i 'Loop
...
lvwTarget.visible=true
那样的话,,
连ColumnHeaders都看不到了,,
整个一片空白很长时间,才出现数据
唉~~~帮帮我吧! With LView_Table
.View = lvwReport '报表显示
.GridLines = True '网格显示
.FullRowSelect = True '整行选中
.Sorted = True
.SortOrder = lvwDescending
.LabelEdit = lvwManual
End With
怎么让提高速度,又不让闪屏呢
找一些可以避开Add方法的控件DataGrid.MSHFlexGrid,增加行(.rows=X)再赋值比Add方法快多了,可是ListView连这也不支持,没办法。