Imagen en informe de Access condicionada

Tengo que hacer un informe en Access y uno de los campos es una casilla de verificación. Como he leído que no se puede aumentar de tamaño, quería sustituirla por una imagen que aparezca sólo si la casilla de verificación está marcada.

¿Podríais ayudarme a hacerlo? Tengo un nivel muy bajo en Access (lo digo por si me explicáis con detalle los pasos a seguir)

2 respuestas

Respuesta
1

Lo puedes hacer de mil formas distintas, todo depende de si siempre va a ser la misma imagen, si va a cambiar por registro, del diseño del informe, etc.

Por ejemplo, supongamos que tengo una tabla con un campo Paga, que puede ser si/no

Observa que Ana Trujillo no paga( porque no le da la gana). Y supongamos que el diseño del informe es, más o menos

Donde el control Paga lo pongo como oculto y le añado esa imagen.

En las propiedades de la sección Detalle, en la solapa Eventos-Al dar formato, con el generador crea un procedimiento de evento y entre Private Sub y End Sub  lo pones como te indico

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Me.Paga = -1 Then
Imagen11.Visible = True
Else
Imagen11.Visible = False
End If
End Sub

de forma que cuando lo abres en vista preliminar

Como puedes ver a Ana no la señala.

Si ves que tienes problemas para hacerlo dímelo y te lo pongo paso a paso con imágenes para ver como se crea el código.

Muchísimas gracias.

Lo has explicado genial. Viendo ya el mecanismo he podido poner dos imágenes: una para cuando está activa y otra para cuando está desactivada.

Ayer estuve buscando por mil sitios y probando y nada.

Muchas gracias.

Tengo una duda, al pasarlo a otro ordenador ya no funciona.

Las imágenes aparecen en el informe (pero solo se ve visible la que está encima), es decir, no ejecuta el procedimiento de evento. Lo único que he hecho es copiar el archivo de la base de datos a otro ordenador.

¿Puede ser por la forma en la cual he insertado la imagen en el informe?

Muchas gracias

No te lo puedo decir. Me extraña porque la imagen está incrustada. ¿Has puesto la instrucción en las propiedades de la sección Detalle?

Está exactamente igual, no he tocado nada. Sólo copié la base de datos y la pasé a otro ordenador que tiene la misma versión de Access

En el informe, en vista diseño, la imagen la puse dándole a donde están los botones de insertar botón, casilla, etc.

¿Puedes enviarme sin datos una copia de tu base, o al menos, la tabla y el informe basado en ella?. Es para echarle un vistazo.

Mi correo es [email protected]

Respuesta
1

Es muy sencillo, te explico los pasos:

1º/ Abre tu informe en vista diseño

2º/ Añade un control de imagen (lo llamaré, a efectos de la explicación imgCasilla, pero en Propiedades->Otras->Nombre la puedes llamar como quieras). A este control de imagen le cargas la imagen.

3º/ En la misma sección del informe (supondré que todo va en la sección Detalle), pones el campo que es la casilla de verificación (la llamaré chkMostrar). En sus Propiedades->Formato, le pones Visible: No

4º/ Ahora sacas las propiedades de la sección Detalle, vas a la pestaña Eventos, y localizas "Al dar formato". Cuando te coloque sobre él, verás que a la derecha te aparece un botoncito con 3 puntos. Lo pulsas y seleccionas "Generador de código" en la ventana emergente.

5º/ Se te abrirá el editor de VBA y ahí donde te aparece el cursor (entre las dos líneas Private Sub Detalle (Format) y End Sub), escribes este código:

If Me.chkMostrar=True Then
  Me.imgCasilla.Visible=True
Else
  Me.imgCasilla.Visible=False
End If

Y listo. Cuando abras el informe en Vista Preliminar, o lo mandes a imprimir directamente, en aquellos registros que tengan la casilla marcada te aparecerá la imagen y en aquellos que no, pues no aparecerá.

Obviamente si el control imagen lo pones en otra sección diferente, deberás poner el código en el evento "al dar formato" de esa sección.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas