Zebrar um DBGRID ligado a alguma tabela aberta é roubada....
A função que zebra o grid na verdade passa de registro em registro no grid...
se vc tem uma tabela muito grande este processo poderá ser demorado...
mas ta aí o código...
' FORM LOAD
Call dBCores(&HFFFFFF, &HC0FFFF, SeuDBGRID1)
'INCLUA NO MÓDULO
Private Function EImpar(ByVal iNum As Long) As Boolean
'Verifica se o número é impar
'Se for impar a função retorna True.
'Se for par a função retorna False.
EImpar = (iNum Mod 2)
End Function
Public Sub dBCores(lCorPar As Long, lCorImpar As Long, SeuDBgrid As DBgrid)
'Sintaxe:
'dBCores(Cor das linhas pares, Cor das linhas impares, NomeGrid)
'Exemplo:
dBCores(&HFFFFFF, &HC0FFFF, dbGrid1)
Dim iLinha As Integer
Seudbgrid.FillStyle = flexFillRepeat
For iLinha = 1 To Seudbgrid.Rows - 1
With Seudbgrid
.Row = iLinha
If EImpar(iLinha) Then 'Se a linha for impar:
'Seleciona a partir da primeira coluna
.Col = 0
'Seleciona até a última coluna
.ColSel = .Cols - 1
'Aplica a cor
.CellBackColor = lCorImpar
Else 'Se a linha for par:
'Seleciona a partir da primeira coluna
.Col = 0
'Seleciona até a última coluna
.ColSel = .Cols - 1
'Aplica a cor
.CellBackColor = lCorPar
End If
End With
Next
Seudbgrid.FillStyle = flexFillSingle
End Sub