L'esempio che ti avevo postato colorava solo alcuni SubItems (doveva essere adattato alle tue necessità) mentre il seguente, se si verifica la condizione da te posta (e non inserita per prevità nel codice) dà il rosso a tutti i SubItems:
Ho provato e l'esempio è funzionante.codice:Private Sub Command1_Click() 'Formatta ListView per visualizzare i nuovi dati : Form1.ListView1.ListItems.Clear Form1.ListView1.View = lvwReport Dim ConC As New ADODB.Connection Dim RSTc As New ADODB.Recordset Dim itmX As ListItem Dim DataConnessione As String Dim i As Integer Dim y As Integer Dim LI As ListItem DataConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ProvaLV.mdb;Persist Security Info=False;" 'Esegue la connessione con il DataBase Tbl1: With ConC .ConnectionString = DataConnessione .CursorLocation = adUseClient 'tipo di cursore .Mode = adModeShareDenyNone 'nessuna limitazione .CommandTimeout = 15 .Open End With RSTc.Source = "SELECT * FROM Tbl1" RSTc.Open , ConC, adOpenDynamic, adLockOptimistic Do Until RSTc.EOF Set itmX = Form1.ListView1.ListItems.Add() With RSTc itmX.Text = .Fields("ID") ' Colore Rosso: itmX.ForeColor = RGB(255, 0, 0) itmX.SubItems(1) = .Fields("O_F") itmX.SubItems(2) = .Fields("Piano") itmX.SubItems(3) = .Fields("Stanza") itmX.SubItems(4) = .Fields("Call_Center") itmX.SubItems(5) = .Fields("Operatore_SIT") itmX.SubItems(6) = .Fields("DataApertura") itmX.SubItems(7) = .Fields("OraApertura") RSTc.MoveNext End With Loop ' Colora di rosso ListSubItems: For i = 1 To Form1.ListView1.ListItems.Count Set LI = Form1.ListView1.ListItems(i) With LI ' Colore Rosso: For y = 1 To 7 .ListSubItems(y).ForeColor = RGB(255, 0, 0) ' Mette il grassetto nella posizione/colonna 5: If (y) = 5 Then .ListSubItems(y).Bold = True End If Next y End With Next 'Chiude e cancella il recordSet: RSTc.Close Set RSTc = Nothing 'Chiude e cancella la connessione: ConC.Close Set ConC = Nothing End Sub
![]()

Rispondi quotando