Oggi mi sento generoso....scherzo...

Questa 'chicca ' è una routine da me implementata con la quale puoi
riempire tutte le list view che vuoi,
Come vedi devi passargli dei parametri :connessione ,stringa sql,nome oggetto listview.
Ci sono controlli sui tipi di dati ecc.
Quindi posso dire 'si prega di non rimuovere la parte del codice
commentata....'
ah..ah..ah..

-----------n.b.--------------------------------------------------
Per utilizzarla devi prima andare nelle proprietà della listview e inserire manualmente le colonne di qui hai bisogno.
(E' possibile rendere automatico pure questo ma lascio a te il piacere
,lo ho già fatto e non è poi così terribile).
-----------------------------------------------------------------
Questo perchè una volta 'faticato' utilizzerai sempre lo stesso codice visto che è valido per ogni tipo di situazione.


Public Sub CaricaListView(Db As ADODB.Connection, _
Sql As String, _
Lista As ListView)
Dim Rst As New ADODB.Recordset
Dim I As Integer
Dim vAppo As Variant
Dim myListItem As ListItem
Rst.Open Sql, Db
Do While Not Rst.EOF
vAppo = Rst.Fields(0).Value
If IsNull(vAppo) Then vAppo = vbNullString
Set myListItem = Lista.ListItems.Add(, , vAppo)
'Realizzata da adam.
For I = 1 To Rst.Fields.Count - 1
vAppo = Rst.Fields(I).Value
If IsNull(vAppo) Then vAppo = vbNullString
If Rst.Fields(I).Type = adDate Then
If vAppo <> vbNullString Then
If Fix(vAppo) = 0 Then
myListItem.SubItems(I) = Format(vAppo, "hh:mm")
Else
myListItem.SubItems(I) = Format(vAppo, "dd/mm/yyyy")
End If
End If
Else
myListItem.SubItems(I) = vAppo
End If
Next I
Rst.MoveNext
Loop
Rst.Close
Set myListItem = Nothing
End Sub

ricordarsi di distruggere tutti gli oggetti di cui non si ha bisogno.
(nel caso connessione e recordset)
Spero di essere stato chiaro o comunque che la cosa ti serva......
altrimenti buttala......
Fammi sapere se va tutto bene.

ciao.