Pregunta: | 52010 - CAMBIAR COLOR A UNA FILA DE UN GRIDEX |
Autor: | Álvaro Camacho Lugo |
Hola muy buenas, tengo un gridex que me muestra todos los clientes que tengo en mi base. En esta tabla de cliente tengo un campo que me indica si el cliente lo es o no lo es, es decir, si ese campo(estado) tiene un 1 como valor es activo y si tiene un 0 es inactivo. Entonces lo que quiero hacer es que cuando me muestre en el gridex a todos los clientes que tengo en la tabla, a aquellos que tienen en el campo de "estado" un 1 se me ponga el texto de esa fila en azul y a los que no tienen un 1 me lo deje en negro tal como viene por defecto. Este es el codigo que tengo, a ver si me lo pueden revisar y decirme que es lo que tengo mal, ya que o me lo muestra todo en negro o en azul. (Cuando me lo muestra todo el gridex en azul es porque da la casualidad de que el ultimo registro del gridex cumple con la condicion que le indico, es decir, que el cliente es activo y entonces me pone todo el gridex en azul, no me respeta las filas.
"rsdatos" es el recordset que he hecho de la tabla "clientes" para mostrar en el gridex la sentencia select que he hecho es: " select * from clientes" While Not rsdatos.EOF i = i + 1 If (rsdatos("estado") = 1) Then GridEX1.Row = i GridEX1.ForeColor = vbBlue Else GridEX1.Row = i GridEX1.ForeColor = vbBlack End If rsdatos.MoveNext Wend Por favor a ver si me pueden decir que es lo que he hecho mal porque no me sale lo que estoy intentando hacer. Muchas gracias de antemano. Saludos. |
Respuesta: | David Enriquez |
Tengo una funcion que te puede ayudar... mas o menos te platico como esta mi grid:
Tiene 1 columna Grupo_Trabajo Contabilidad Nominas Compras llamo a la funcion x=PintaFilas(Grid1) Function pintafilas(ByVal Objeto As Object) As String Dim IdGporEnc As String On Error Resume Next With Objeto For Fila = 1 To .Rows - 1 .Col = 0 .Row = Fila IdGporEnc = .Text For icol = 0 To .Cols - 1 ColorSel = BuscaColor(IdGporEnc) 'La funcion me busca que color corresponde al grupo de trabajo encontrado .Col = icol .CellBackColor = ColorSel Next icol Next Fila End With Err.Clear() ' Comprueba el error, después muestra un mensaje. If Err.Number <> 0 Then Msj = "Error # " & Str(Err.Number) & " fue generado por " _ & Err.Source & Chr(13) & Err.Description MsgBox(Msj, , "Error", Err.HelpFile, Err.HelpContext) End If 'Ejemplo 'Grupo de Trabajo: Color 'Contabilidad Rojo 'Nominas Amarillo 'Compras Azul '***Nota: si no mal recuerdo el color lo guardo en este formato: &H8000000F& End Function Espero te sirva |