送个模块给你(连接sql server 表的):
代码要求:listview需要连接一个imagelist控件,且包含图标
参数说明:RS为记录集(或表),LV为listview控件,IMAGE为imagelist控件中的图标的关键字
Public Sub LoadServerRecordset(RS As Recordset, LV As ListView, IMAGE As String) '将记录集显示在Listview控件中
Dim I As Integer
Dim J As Integer
LV.View = lvwReport
LV.ColumnHeaders.Clear
LV.ListItems.Clear
If RS.Fields.Count > 0 Then
For I = 0 To RS.Fields.Count - 1
LV.ColumnHeaders.Add
'LV.ColumnHeaders(LV.ColumnHeaders.Count).Icon = IMAGE
LV.ColumnHeaders(LV.ColumnHeaders.Count).Text = RS.Fields(I).Name
Select Case RS.Fields(I).Type
Case 131 '5, 4, 16, 7, 21 ' 数字类型
LV.ColumnHeaders(I + 1).Alignment = lvwColumnRight '右对齐
End Select
Next I
RS.Requery
Do While Not RS.EOF
LV.ListItems.Add
LV.ListItems(LV.ListItems.Count).Icon = IMAGE
LV.ListItems(LV.ListItems.Count).SmallIcon = IMAGE
If RS.Fields(0).Type = 131 Then
LV.ListItems(LV.ListItems.Count).Text = Format(RS.Fields(0), "yyyy-mm-dd")
Else
LV.ListItems(LV.ListItems.Count).Text = RS.Fields(0)
End If
For I = 1 To RS.Fields.Count - 1
Select Case RS.Fields(I).Type
Case 135
LV.ListItems(LV.ListItems.Count).SubItems(I) = Format(RS.Fields(I), "yyyy-mm-dd")
Case 131 'oracle= 131, sql server = 5
LV.ListItems(LV.ListItems.Count).SubItems(I) = Format(RS.Fields(I), "Standard")
Case Else
LV.ListItems(LV.ListItems.Count).SubItems(I) = RS.Fields(I) & ""
End Select
Next I
RS.MoveNext
Loop
If Not LV.SelectedItem Is Nothing Then LV.SelectedItem.Selected = False
End If
End Sub