Be si che funziona cio passato una nottata...........ah ah ah
certo avrei dovuto commentare il codice come si dovrebbe sempre....
Le due istruzioni servono:
dunque la listview ha l'item che corrisponderebbe al primo campo che viene visualizzato e degli subitem ...gli altri (eventuali)
prima di tutto quindi leggo il db e inserisco nel primo campo della listview il valore che mi trovo nel db nella posizione (0) che sarebbe
fisicamente la prima..
(molte volte si tratta di un id contatore o
comunque un identificativo univoco (primarikey) ma non è
comunque obbligatorio)
dopo di che nel ciclo che hai visto for next che ciclera tante volte quanti sono i campi rimanenti che devo inserire (to fields.count)
-1 perchè la numerazione comincia da 0.
in questo ciclo leggo tutti i campi del db e li inserisco nei campi della lista.Quindi non una riga ma campi del record(riga...)
vAppo e una variabile di 'appoggio' .
Be non so se sono stato chiaro nel caso ci posso riprovare.
Ti riscrivo il codice della routine COMMENTATO !!!!!!
Public Sub CaricaListView(Db As ADODB.Connection, _
Sql As String, _
Lista As ListView)
'PARAMETRI DA PASSARGLI
Dim Rst As New ADODB.Recordset
Dim I As Integer
Dim vAppo As Variant 'VARIABILE DI APPOGGIO (E' VARIANT PERCHE' ...E' COSì E BASTA...
Dim myListItem As ListItem 'OGGETTO DI APPOGGIO
Rst.Open Sql, Db
Do While Not Rst.EOF 'APRO E COMINCIO IL CICLO NEL RECORDSET ESTRATTO CON LA QUERY
vAppo = Rst.Fields(0).Value 'VALORE DEL CAMPO DEL DB 0 (PRIMA COLONNA)
If IsNull(vAppo) Then vAppo = vbNullString
--------Set myListItem = Lista.ListItems.Add(, , vAppo)
'Realizzata da adam.
'POI ENTRO NEL CICLO DA 1 A NUMERO COLONNE -1
'COSì LEGGO I VALORI DELLE RIMANENTI COLONNE
(SIAMO ANCORA SUL PRIMO RECORD)
---For I = 1 To Rst.Fields.Count - 1
------vAppo = Rst.Fields(I).Value
-------------------------------------------------------------------------------------------------------------------------------------------- 'CI SONO VARI CONTROLLI SUL FORMATO DATA ,VALORI NULL,ECC...(ALQUNI SONO INDISPENSABILI)
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
-------------------------------------------------------------------
------------------------------------------------------------------
'QUINDI SE SEI SICURISSSSSSSSSIMO CHE NON CI SIANO VALORI NULL DATE STRANE E ALTRO L'ISTRUZIONE CHE BASTEREBBE E' LA SEGUENTE
(QUINDI GIUSTO PER UNA PIU' FACILE COMPRENSIONE POTRESTI ELIMINARE
TUTTO IL CODICE TRA' LE LINEE TRATTEGGIATE.
FALLO SOLO MENTALMENTE PERCHE' E' IMPOSSIBILE CONTROLLARE TUTTI I TIPI DI DATI E POTRESTI AVERE PROBLEMI.
--------myListItem.SubItems(I) = vAppo
-----End If
Next I
Rst.MoveNext
Loop
Rst.Close
Set myListItem = Nothing
End Sub
bE FAMMI SAPERE.
ciao.

Rispondi quotando