¿Se pueden listar registros en un formulario con fotos asociadas?

Estoy haciendo un inventario de materiales. Tengo un formulario tipo tabular en el cual cada linea tiene asociado un Id_inventario_detalle. Por otro lado tengo en una carpeta todas las fotografías de cada material (ej: C:\HTV\Access\Inventario\34.jfif). ¿Se podría hacer que al abrir el formulario, en cada linea de registro apareciese la fotografía de su correspondiente material?

2 respuestas

Respuesta
1

Si la carpeta va a ser siempre la misma y la extensión de las imágenes también va a ser siempre la misma, en la tabla puedes crear un campo Foto como en la imagen

Luego, en el formulario le agrego un control imagen( en el ejemplo se llama Imagen7) y en las propiedades del formulario, en el evento Al activar registro le pongo

Private Sub Form_Current()
If Not IsNull([Foto]) Then
Imagen7.Picture = "C:\users\gonza\documents\imagenesusar\" & "" & Me.Foto & "" & ".jpg"
Else
Imagen7.Picture = ""
End If
End Sub

Donde yo pongo c:\....tienes que poner tu ruta a la carpeta. De forma que

Respuesta
1

Todo lo que te cuenta y muestra Icue está muy bien, y es perfectamente correcto en un formulario "normal", PERO en tu caso, con un formulario continuo (con distribución tabular), si lo haces así verás que te mostrará siempre en todos los registros la imagen del registro activo.

Para hacerlo en un formulario continuo, tienes que usar otro sistema, por ejemplo alguno de lso que explica Neckkito en sus ejemplos:

http://neckkito.xyz/nck/index.php/ejemplos/13-formularios/91-imagenes-en-formulario-continuo 

http://neckkito.xyz/nck/index.php/ejemplos/13-formularios/92-imagenes-en-formulario-continuo-evolution 

Hola, el problema que tengo es que la base de datos ya está creada com más de 1.000 registros y sus correspondientes 1.000 imagenes. Llevaría mucho tiempo en dar los nombres de las imagenes a cada registro. ¿Se puede automatizar de manera a que en las celdas "Inventario_imagen" de la tabla se pusiera la ruta con el id de cada registro? gracias

En Access, sabiendo un poco, se puede hacer casi de todo...

¿Qué no tienes un campo en el que tengas el nombre de la imagen? Pues no hay problema (o sí, depende de la siguiente respuesta)... ¿Las imágenes en la carpeta se llaman como algún campo, por ejemplo el ID, (1.jpg, 2.jpg...)? Pues solo sustituye en los códigos/expresiones del ejemplo la referencia al campo NombreImagen por la del cmapo ID, añadiendo también la extensión del archivo, por ejemplo:

=fncRutaImagenes() & [ID] & ".jpg"

Si no es eso a lo que te refieres, tendrás que explicarte mejor...

No lo consigo. No aparece ninguna imagen. Esto es lo que he hecho:

- Añadido un campo "Inventario_imagen" en la tabla "Inventarios_detalle" de tipo memo

- En el formulario continuo "inventarios_visual" he añadido un campo Imagen con el origen del control =fncRutaImagenes() & [Id_inventario_detalle] & ".jfif"

- He añadido un modulo mdlRuraImagenes con el siguiente código:

Public Function fncRutaCarpetaImg() As String
Const nombreCarpetaImagenes As String = "HTV\Access\Inventario"
fncRutaCarpetaImg = CurrentProject.Path & "\" & nombreCarpetaImagenes & "\"
End Function

La dirección de una imagen concreta es "F:\HTV\Access\Inventario\1373.jfif" donde 1373 es el id_inventarios_detalle de la tabla inventarios_detalle

Cuando pones CurrentProject. Path, estás poniendo la ruta a la carpeta donde tienes la Bd de access, por eso no te pone ninguna imagen, porque está buscando en una carpeta que no existe.

Si tu ruta es fija, ponla en la función, o directamente en el origen de control.

Si depende de donde tengas la Bd de access, pon solo en la variable nombrecarpetaimagenes la parte que no está ya en lo que devuelve el CurrentProject. Path

Ejemplo, si el archivo access está en:

F:\HTV\Access

Y ahí tienes la carpeta Inventario,  la función sería:

Public Function fncRutaCarpetaImg() As String
fncRutaCarpetaImg = CurrentProject.Path & "\Inventario\"
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas