Problemi a inserire un campo numerico in colonna listview

di il
1 risposte

Problemi a inserire un campo numerico in colonna listview

Sto popolando una listView con dati provenienti da recordset access.
Il campi id che devo caricare deve essere caricato come numeri per poter essere sortaato in maniera corretta.
Utilizzo questo codice, ma il campo in viene comunque trattato come stringa e in ordinamento non vengono sortati correttamente.
dove sto sbagliando ?

  With rs1
       Do While Not .EOF
       Nrec = Nrec + 1
          Set itm = Me.ListView1.ListItems.Add(, , CInt(.Fields("id").Value)) <-- qui dovrei rendere numerico il campo "id"
       
           Stato = .Fields("stato").Value
           Select Case Stato
               Case 3
                   colore = vbMagenta
                   icona = "I3"
               Case 4
                   colore = vbGreen
                   icona = "I1"
               Case 5
                   colore = vbRed
                   icona = "I2"
               Case Else
                   colore = vbBlack
                   icona = "I4"
           End Select
       
           itm.SubItems(1) = .Fields("utente").Value
           itm.SubItems(2) = .Fields("intervento").Value
           '=============== stratagemma per ordinare per DATA =============
           itm.SubItems(3) = Format(.Fields("dataInizio").Value, "yyymmdd")
           '===============================================================
           itm.SubItems(4) = .Fields("dataInizio").Value
           itm.SubItems(5) = .Fields("stato").Value
           itm.SubItems(6) = .Fields("DescStato").Value
           itm.ListSubItems(6).ForeColor = colore
    '       itm.ListSubItems(6).ReportIcon = icona
            rs1.MoveNext
       Loop
       Me.lblNPratiche = Nrec
       Set rs1 = Nothing
   End With

Grazie

Moreno

1 Risposte

  • Re: Problemi a inserire un campo numerico in colonna listview

    La ListView riceve un valore testuale. Prova a gestire questo problema così:

    Set itm = Me.ListView1.ListItems.Add(Text:=Format(.Fields("id").Value, "0000"))

    Quindi nel campo ID ti ritroverai "0001"; "0002";......"0010";..."0100"; ecc...

    In questo caso dovrebbe funzionare l'ordinamento.

    P.S. Hai risolto la questione delle icone? Io alla fine ho riprodotto il file Access e messo in relazione le 2 tabelle per poi ricavare la Query che alla fine ti riporta i vari dati in Excel. La visualizzazione delle icone mi funziona correttamente. Secondo me dovresti dare riscontro a quello che ti viene suggerito. Sia per gli utenti che possono lamentare gli stessi problemi e sia per chi impegna il proprio tempo a fornirli.

Devi accedere o registrarti per scrivere nel forum
1 risposte