Informes Access: imágenes en campo "DAtos adjuntos" y formato condicional al "Detalle"

Trabajo con Access 2010. Estoy diseñando un informe y he incorporado un campo, tipo Datos adjuntos, dónde guardo imágenes (una por registro).

El tema es que algunos registros no tienen imágenes, pero en el informe se muestra el espacio; mi intención es hacer que no ocupe lugar en el informe si está vacío (tal y como hacemos con los campos texto con el autocomprimible y autoextensible). He leído muchas consultas sobre imágenes pero no encuentro como resolverlo con un campo de este tipo.

¿Si solo quiero añdir una imagen por registro he hecho bien usando un campo de este tipo?
¿Me recomendarías que cambie el tipo?
¿Alguien me tira un cable?

Aprovecho, para consultaros si ¿sabéis si en un informe puedo cambiar el color de fondo de todo un registro con el objetivo que destaque sobre otros? Por ejemplo: si activo un campo Sí/No que se llame DESTACAR, que cambie el color del "Detalle" en "todo el registro". No sé si me explico...

Disfrutad de las vacaciones :)

1 Respuesta

Respuesta
2

Por partes, a mí personalmente no me gustan nada los campos de datos adjuntos. Si sólo vas a poner un archivo( o ruta al archivo) y este es del tipo JPG, PNG, BMP, etc puedes usar un control imagen y la función MSO Filedialog. Y si el archivo es del tipo wri, pdf, txt, etc puedes usar Application. Followhyperlink

Por otro lado, si en el informe quieres que un registro en particular al ser el campo Destacar True o False puedes usar el formato condicional

Por ejemplo. seleccionas todos los controles de la sección detalle menos la casilla Destacar y pulsas Formato-Formato Condicional-Nueva regla-La expresión es: [destacar]=true

Y eliges el color que quieras que tomen en este caso.

Por ejemplo, si tengo la tabla

Y en el diseño del informe selecciono los cuadros de texto

Cuando lo abro

También podrías usar un cuadro de texto grande que ocupara toda la sección Detalle, aplicarle sólo a el lo mismo del formato condicional

¡Joder, la cabeza!. Con respecto a lo de la imagen en el informe, si tengo una tabla

En el campo RutaArchivo pongo(usando msofiledialog) las rutas a unas imágenes(observa que Ana no tiene imagen asociada). Con ella construyo un informe

Al control imagen lo llamo ImagenFoto. Y en el evento Al dar formato de la sección Detalle le pongo

Cuando abro el informe

Como puedes ver el registro de Ana sólo ocupa el espacio del nombre.

Buenas Icue,

Antes que nada, gracias por tus respuestas. He probado lo que sugieres pero no consigo alcanzar mis objetivos.

Respecto los datos adjuntos: he cambiado el campo a texto y he añadido las rutas a algunas imágenes (lo he hecho a mano porque lo de msofiledialog me suena a chino); he añadido el Marco de objeto independiente al informe, y en el detalle he reproducido tu ejemplo de código, pero me da un error:

Se ha poducido el error "438" en tiempo de ejecución: el objeto no admite esta propiedad o método.

Y me dice que debo depurar el código... pero no soy muy ducho en VBA.

Respecto el formato condicional, la idea de un cuadro de texto que ocupe la sección Detalle es muy buena, pero no me sirve porque esta sección es autoextensible y autocomprimible y no tengo forma de ajustar el cuadro.

No se si se te ocurre alguna alternativa, pero en cualquier caso, gracias!!! 

Pedir + info...

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo, que es como mejor se ve.

Si lo haces, en el asunto del mensaje pon tu alias Bartoldu, ya que si no sé quien me escribe ni los abro.

Buenas tardes!

Recibí tu email y estoy probando de traslladar tu ejemplo a mi bbdd.

He empezado por el formulario, pero cuando añado el código al control RutaArchivo y lo voy a probar me aparece el siguiente error de compilación: "No se ha definido el tipo definido por el usuario" y aquí me he quedado clavado porque no sé demasiado de vba...

Siento ser tan plasta :(((
Estoy haciendo un curso de vba, pero no he llegado muy lejos todavia ;)

Me había olvidado, precisamente iba a mandarte un mensaje advirtiéndolo. En tu base, abre el editor de VB y en la barra de menús pulsa Herramientas-Referencias y activa la casilla

Microsoft Office XX.X Object Library

Lo de XX.X es por tu versión de Office, si es el Office 16 sería

Microsoft Office 16.0 Object Library

De todas formas, aprovecha y échale un vistazo a las referencias de la que te envié.

Perfecto en crack!

Lo único es que (a diferencia del tuyo que es simple) mi formulario es continuo y la imagen del registro activo se repite en todos los registros... puedo arreglarlo?

Es exactamente igual, la pantalla no me da para más

Lo único que tienes que hacer es poner, en el origen de control del control imagen el campo RutaArchivo

Mira, yo le pongo en el evento Al recibir el enfoque del cuadro de texto RutaArchivo

Private Sub RutaArchivo_GotFocus()
RutaArchivo = buscaArchivo()
Me.Refresh
End Sub

Resuelto!!!
¡Gracias! ¡Gracias! ¡Gracias! 

Me falta un botón con 10 ticks para valorarte ;)

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas