[RESUELTA] Imágenes y sus rutas en formularios e informes

Dudas sobre Tablas, Consultas, Formularios, Informes...
mar7632
Nivel 2
Mensajes: 29
Registrado: Vie Ene 11, 2019 1:25 pm

[RESUELTA] Imágenes y sus rutas en formularios e informes

Mensajepor mar7632 » Lun Ene 14, 2019 11:20 am

Buenos días a tod@s,

Tengo 3 dudas que me gustaría que me pudierais echar una mano. Pero antes os pongo en contexto para que sea más entendible el asunto. :D

Las partes más importantes que uso en la BBDD son las imágenes, concretamente tengo 3 campos asociados. Probé a copiarlas y pegarlas. Sin embargo, eso "engorda" muchísimo la BBDD. Gracias a un post que escribió Neckkito: "Imágenes en formularios y formularios continuos - evolution" -> ( https://drive.google.com/file/d/0B91iZh ... VVZW8/view ), pude solventar este problema mediante el uso de rutas de imágenes llamando a mis tres campos como RutaImagen1, RutaImagen2 y RutaImagen3.

- La primera de mis dudas es la siguiente, y está relacionada con ese post:

A la hora de buscar las imágenes e introducirlas en el formulario no se actualizan de inmediato las imágenes sino que aparecen cuando pasas de registro. Los códigos, las macros están tal cual como se especificaba en el documento de Neckkito.

Tal y como muestro en la captura (1) se ve cómo he buscado las imágenes pero no las muestra de inmediato, a no ser que me "desplace" o me salga del registro (ir al anterior o al siguiente), al volver de nuevo aparecen de forma automática. ¿Hay alguna forma para que aparezcan de inmediato?

- La segunda de mis preguntas viene relacionada con el mensaje que escribí el viernes pasado ( viewtopic.php?f=7&t=1379 ) y que gracias a Pitxiku me ayudó a resolver, pero:

Las rutas de imágenes se introducen en un formulario que es rellenado por mis compañeros para luego mandarlos en formato PDF por correo.
A la hora de crear la macro para abrir el informe y mandarlo por pdf, no aparecen las imágenes como tal (ni en el informe ni en el PDF). Lo que he intentado es poner en el informe los campos RutaImagen1, RutaImagen2, RutaImagen3 y les he asociado un objeto imagen ( En diseño -> controles). En *Formato he borrado el espacio de "Imagen" y en *Datos he copiado [RutaImagen1] en "Origen del control". Sin ningún resultado. :(
Me gustaría saber cómo solucionar este problema, porque tanto como en el informe como en el PDF aparecen escritos solamente la ruta de acceso de las imágenes, y lo que interesa son las propias imágenes en sí.

- La última de mis dudas, está relacionada con poder modificar el tamaño de la imagen que se introduce en el formulario, como si estuviéramos en un word (por ejemplo) que tienes la habilidad de clicar en las esquinas y modificar las dimensiones como tú quieras. Me preguntaba si es posible realizar esto en Access en lugar de tener que predefinir el espacio que va a ocupar el objeto.


Espero que me podáis ayudar en estos aspectos, muchas gracias de antemano. :D

Un saludo a tod@s.
Adjuntos
duda1.PNG
(1)
Última edición por mar7632 el Mié Ene 16, 2019 1:06 pm, editado 1 vez en total.

mar7632
Nivel 2
Mensajes: 29
Registrado: Vie Ene 11, 2019 1:25 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor mar7632 » Lun Ene 14, 2019 12:35 pm

Hola de nuevo,

Para la segunda duda, he encontrado un link ( https://www.todoexpertos.com/preguntas/ ... de-su-ruta ). El cual utiliza el siguiente código (lo he modificado para mi caso :D ) :

Private Sub Report_Load()

If Not IsNull(Me.RutaImagen1) Then
Me.Imagen35.Picture = Me.RutaImagen1
Else
Me.Imagen35.Picture = ""
End If
End Sub


A lo que el usuario Sveinbjorn El Rojo, respondió con poner ese código en la parte del informe *Detalle -> Hoja de propiedades -> "EVENTOS" -> Al dar formato.

Usando lo siguiente:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Not IsNull(Me.RutaImagen1) Then
Me.Imagen35.Picture = Me.RutaImagen1
Else
Me.Imagen35.Picture = ""
End If
End Sub


Sin embargo, seguramente haya que modificar algo del código para que salga correctamente, espero vuestra ayuda.

Gracias de nuevo.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1039
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor Sveinbjorn » Lun Ene 14, 2019 2:14 pm

Por alusiones, empiezo yo a responderte :roll:

1ª duda: En la web de Neckkito tienes varios ejemplos sobre imágenes en formularios en informes , y por la imagen que pones, en mi opinión no has seguido el que más se ajusta a tus necesidades (yo hubiera seguido el ejemplo Imágenes en formulario)
Pero bueno, siempre puedes hacerle un Refresh al formulario en el código que tienes para cargar las imágenes (basta con añadir como última línea del código de cada botón un Me.Refresh)

2ª duda: el código lo tienes que adaptar a los nombres que tengas en tu BD, además de colocarlos en la sección en que tengas los cuadros de imagen (que no tiene por qué ser necesariamente la sección Detalle). Además tendrás que repetir el bloque If tantas veces como controlesde imagen tengas (es decir, tendrás que tener tres bloques If dentro de ese evento porque tienes 3 controles de imagen.

3ª duda: los controles de imagen con "contenedores" donde insertas o vinculas la imagen. Como tales contenedores, cuando los colocas en el formulario estás definiendo su alto y ancho, y a menos que se lo modifiques manualmente (en vista diseño) o por código (en algún evento), no hay forma de que se ajusten a las imágenes. Además, los controles de imagen tienen una propiedad (modo de cambiar el tamaño) para establecer cómo se muestra la imagen dentro del control imagen (zoom, recortar o extender). Pero lo que no puedes hacer (al menos que yo sepa) es modificar el tamaño del archivo imagen desde Access.
Sveinbjorn El Rojo

mar7632
Nivel 2
Mensajes: 29
Registrado: Vie Ene 11, 2019 1:25 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor mar7632 » Lun Ene 14, 2019 5:00 pm

Gracias por responder Sveinbjorn,

Los puntos 1 y 3 les echaré un vistazo, cuando abra la BBDD. Con respecto al punto 2, ¿Cuáles son los "nombres" que tendría que buscar en mi BBDD para adaptar el código correctamente? ¿Me podrías facilitar algún tipo de código base para lograr mi cometido? Por favor.

De todas formas, aunque sea un "chapuza" :lol: lo que he hecho ha sido utilizar otro formulario y ahí sí que se ven las imágenes que me interesan con los campos que deseo ocultar para luego mandarlos por PDF. Pero es una solución a corto plazo, pues seguramente se requieran los informes para imprimir los datos con las imágenes correspondientes.

Un saludo.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1039
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor Sveinbjorn » Lun Ene 14, 2019 6:41 pm

Con el código que citas:

Código: Seleccionar todo

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Not IsNull(Me.RutaImagen1) Then
Me.Imagen35.Picture = Me.RutaImagen1
Else
Me.Imagen35.Picture = ""
End If
End Sub

te comento:

RutaImagen1 -> tendrás que cambiarlo por el nombre del cuadro de texto que tiene la ruta de la imagen
Imagen35 -> Tendrás que cambiarlo por el nombre del control imagen en el que quieres mostrar la imagen de RutaImagen1

Y en los otros dos IFs, tendrás que poner, respectivamente, el cuadro de texto y el control imagen para la imagen 2 y para la 3.
Sveinbjorn El Rojo

mar7632
Nivel 2
Mensajes: 29
Registrado: Vie Ene 11, 2019 1:25 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor mar7632 » Mié Ene 16, 2019 10:53 am

Buenos días, gracias por tu interés Sveinbjorn. He considerado el punto 1 y para mi caso no es la más funcional, pero igualmente lo tengo guardado como otra alternativa.

Me estaba liando mucho con el código para introducir los IFs y después de un largo tiempo ¡Creo que lo he conseguido! :D Por lo menos, se muestra en el informe tal y como estaba buscando. ¿Qué te parece, es funcional el código?

Código: Seleccionar todo

 Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)

If Not IsNull(Me.RutaImagen1_i) Then
Me.Imagen35.Picture = Me.RutaImagen1_i
ElseIf Me.Imagen35.Picture = "" Then

End If

If Not IsNull(Me.RutaImagen2_i) Then
Me.Imagen37.Picture = Me.RutaImagen2_i
ElseIf Me.Imagen37.Picture = "" Then

 End If
 
If Not IsNull(Me.RutaImagen3_i) Then
Me.Imagen38.Picture = Me.RutaImagen3_i
ElseIf Me.Imagen38.Picture = "" Then

End If

End Sub


Tal y como me comentaste las: RutaImagen1_i , RutaImagen2_i ; RutaImagen2_i son los nombres de los cuadros de texto en el informe. (En el formulario los he llamado RutaImagen1 , RutaImagen2 , RutaImagen3)

Imagen35 , Imagen37 , Imagen38 son los objetos de imagen seleccionados en las Herramientas de diseño del informe.

En el caso que esté correcto todo, se puede dar por resuelta esta duda. Espero que sirva este post como apoyo para otras personas que tengan un asunto similar. :)

Muchas gracias por la ayuda recibida.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1039
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Imágenes y sus rutas en formularios e informes

Mensajepor Sveinbjorn » Mié Ene 16, 2019 12:24 pm

Hola,

la construcción de los Ifs es un tanto extraña con ese ElseIf, que además, no analiza si hay ruta en el cuadro de texto. Sería mejor que los hicieses así:

Código: Seleccionar todo

If Not IsNull(Me.RutaImagen1_i) Then
    Me.Imagen35.Picture = Me.RutaImagen1_i
Else
    Me.Imagen35.Picture = ""
End If
Sveinbjorn El Rojo


Volver a “Objetos Access”

¿Quién está conectado?

Usuarios navegando por este Foro: GONYMA y 2 invitados