Ni Code buat nampilin recordset ke listview... :
Sub LoadListViewFromRecordset(LV As ListView, rs As ADODB.Recordset, Optional MaxRecords As Long)
Dim fld As ADODB.Field, alignment As Integer
Dim recCount As Long, i As Long, fldName As String
Dim li As ListItem
' Bersihkan dolo listviewnya
LV.ListItems.Clear
LV.ColumnHeaders.Clear
' Create the ColumnHeader collection.
For Each fld In rs.Fields
' filter in type2 dari field2nya
Select Case fld.Type
Case adBoolean, adCurrency, adDate, adDecimal, adDouble
alignment = lvwColumnRight
Case adInteger, adNumeric, adSingle, adSmallInt, adVarNumeric
alignment = lvwColumnRight
Case adBSTR, adChar, adVarChar, adVariant
alignment = lvwColumnLeft
Case Else
alignment = -1 ' jika tipe nya tidak diketahui/ tidak disuport
End Select
' Jika tipe field OK, buat kolom dengan aligment yang benar
If alignment <> -1 Then
'Kolom pertama aligmentnya ke kiri
If LV.ColumnHeaders.Count = 0 Then alignment = lvwColumnLeft
LV.ColumnHeaders.Add , , fld.Name, fld.DefinedSize * 200, _
alignment
End If
Next
' keluar jika tidak ada kolom di header listview
If LV.ColumnHeaders.Count = 0 Then Exit Sub
' masukkan semua record ke listview
rs.MoveFirst
Do Until rs.EOF
recCount = recCount + 1
' masukkan record kolom pertama
fldName = LV.ColumnHeaders(1).Text
Set li = LV.ListItems.Add(, , rs.Fields(fldName) & "")
' masukkan record kolom ke 2 dst
For i = 2 To LV.ColumnHeaders.Count
fldName = LV.ColumnHeaders(i)
li.ListSubItems.Add , , rs.Fields(fldName) & ""
Next
If recCount = MaxRecords Then Exit Do
rs.MoveNext
Loop
End Sub
semoga bermanfaat.... :