Se trata de alternar el color de fondo de las filas de detalle de un informe en Microsoft Access; pintaremos las líneas pares de un color y las impares de otro color diferente.
Esto facilita en gran medida la lectura del informe ya que es fácil seguir leyendo la misma línea sin que nuestra mirada se dirija a la fila anterior o posterior.
En nuestra primera aproximación el propósito es encontrar la solución más sencilla posible.
En el diseño del informe hay que incluir el siguiente código Visual Basic en el evento Al Imprimir de la sección Detalle:
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Static cuenta As Long
Dim color As Long
Dim resto As Long
cuenta = cuenta + 1
resto = cuenta Mod 2
If resto = 0 Then
color = vbWhite
Else
color = 16777177
End If
Me.Detail.BackColor = color
End Sub
En este caso pretendemos que sea lo más sencillo posible aplicar este efecto a cualquier informe
| Al imprimir: | =AlternarColorFondo() |
|---|
| Color del fondo: | 16777177 |
|---|
Public Function AlternarColorFondo()
Static color_no_blanco As Long
Static es_par As Boolean
Dim informe As Report
Dim color_fondo As Long
Set informe = Screen.ActiveReport
color_fondo = informe.Section(acDetail).BackColor
If color_fondo <> vbWhite Then color_no_blanco = color_fondo
es_par = Not es_par
If es_par Then
color_fondo = color_no_blanco
Else
color_fondo = vbWhite
End If
informe.Section(acDetail).BackColor = color_fondo
End Function
Hay una solución avanzada dónde se pueden pasar por parámetro el informe, el número de línea y el color de fondo. Para ver el código y ejemplos de uso descárgate la base de datos de ejemplo
Descargar la base de datos altenar_color.7z… (Está comprimido con 7-zip)
7 comentarios:
Funciona bien cuando los marcadores no están el encabezado o pie del documento.
¿Hay forma de solucionarlo?
Un saludo
I’d prefer reading in my native language, because my knowledge of your languange is no so well. But it was interesting!
Esta muy Buena tu explicacion... Pero tengo una pregunta... puedo crear ul filtro como la busqueda del winamp?? es decir que mientras escribo automaticamente me vaya filtrando enseguida???? Se puede???? Gracias....
carlosandresardila(arroba)gmail(punto)com Gracias....
Muchas gracias por tu generosa contribución me fue muy utíl
Hola, agradezco mucho la información, me esta ayudando muchisimo. Gracias.
Pero tengo un problemilla al intentar ejecutarlo en mi base de datos. Caundo le doy al boton me sale un pantallazo de error del Informeword que dice: "El parametro de la cadena es demasiado largo".
Además con la curiosidad de que en el dot. se me vuelcan unos campos y otros no ¿?.
Agradecería que me indicarais cual es mi error (estoy un poco pez en VB) ya que llevo mucho tiempo detras de esto y que ahora gracias a ti ya sale .... a medias.
Grascias Mil.
Mil gracias!! por este código, me sirvio muchísimo, era exactamente lo que buscaba. Un abrazo.
Muchisima gracia por estos codigo, deberian existir mas personas como tu, asi, lo que estamos empezado en este mundo de la informatica, encontraramos el conocimiento mas rapido