Ver imagen de un campo texto en un informe Access 2003

Tengo una tabla con unos artículos y la foto de cada artículo. El campo foto es tipo texto.
También tengo un formulario en el que voy introduciendo artículos y añadiendo una foto de cada artículo. El campo Foto tipo texto lo tengo vinculado a un campo imagen donde aparece la foto que busco mediante un botón de "Examinar".
Lo que quiero es sacar un informe donde me aparezcan todos los artículos con sus fotos pero en el campo foto, al ser tipo texto, solo me aparece la ruta de la foto, no la imagen en sí.
¿Cómo puedo hacer para que aparezca la imagen de la foto?

1 respuesta

Respuesta
1

El proceso es bastante similar a cómo lo haces en el formulario:

1º/ añades un cuadro de imagen a tu informe

2º/ en el Evento "Al dar Formato" de la sección Detalle de tu informe, le colocas el código para que te cargue la imagen que está en el campo foto. El código es el mismo que el que supongo usas en el formulario.

Mira este enlace, donde te explica paso a paso el código a usar y los apsos a dar: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/informes/98-ejemplos-explicados/ejemplos-de-informes/183-imagenes-en-informes 

Hola, tengo un problemilla. En el formulario, al seleccionar la foto, coge la ruta completa y la mete en la tabla (C:\Documents and Settings\Usuario\Escritorio\....)

Entonces en el código, al indicarle parte de la ruta, me da error, aunque cree esa carpeta en el mismo directorio que la base de datos ya que creo, suma las dos ruta. El error que me da es que no puede abrir el archivo. He probado a modificar la miRuta del código pero no soy capaz, me dice que no coinciden los tipos...

Si el campo te guarda ya la ruta completa, tienes que quitar la parte de miRuta, y en vez de eso, dejar sólo el nombre del campo, algo así:

Me.Imagen.Picture=Me.NombreCampo

Casi casi lo tengo. Ahora lo que me pasa es que aunque no tenga insertada una foto en el campo Foto, en el informe me aparece en todos los campos la última foto que haya insertado.

Quiero decir: tengo 4 campos

Campo1  Foto1

Campo2 Foto 2

Campo3

Campo4

Pues en el informe me aparecen los campos 3 y 4 con la foto 2.

El código que tengo es éste:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim vNom As Variant
vNom = Me.Foto.Value
If IsNull(vNom) Then
Me.ImagenFoto.Picture = ""
Else
Me.ImagenFoto.Picture = Me.Foto
End If
End Sub

He probado entre las comillas a dejar espacio, mil cosas y no sé donde está el probelmas.

Gracias por la paciencia.

No lo pillo... En tu tabla origen del informe ¿qué campos tienes que guardan rutas de las imágenes? ¿Son Foto 1, Foto 2 o Campo 1, Campo 2...?

En tu informe ¿Cuántos marcos de imagen tienes?

Al código que tienes no le veo nada raro (bueno, lo único que lo normal sería ponerlo así: Me.ImagenFoto.Picture = vNom), si el campo que almacena la ruta y nombre es Foto, y el marco de imagen se llama ImagenFoto.

Una cosa más: ¿Leíste el apartado "¿Por que parece que no funciona?" del ejemplo? Tienes que abrir el informe en vista previa (o preliminar), no en vista informe.

Hola!

Intento explicarme:
Tengo una tabla con el campo Artículo, campo Proveedor y el campo Foto (entre otros campos).
Tengo un formulario donde, selecciono el artículo y el proveedor e introduzco una foto (todos los artículos no tienen por qué tener foto asociada) y la ruta completa se guarda en el campo Foto.
Tengo una consulta basada en esta tabla para sacar los artículos de cada proveedor con sus fotos.
Tengo un informe basado en la consulta donde quiero que me saque los artículos de cada proveedor con sus correspondientes fotos (el que la tenga).
El problema que tengo es que cuando saco el informe siempre me saca una foto aunque ese artículo no tenga ruta asociada en el campo Foto. Es decir, quiero que me salga esto:

ARTÍCULO1 
      Proveedor1      Foto1
      Proveedor2      Foto2
      Proveedor3      Foto3

ARTÍCULO2
      Proveedor1     Foto4
      Proveedor3     "sin foto"

ARTÍCULO3
      Proveedor1     "sin foto"

Pero lo que me sale es, tanto en Articulo2-Proveedor3 como en Articulo3-Proveedor1, la última foto que he añadido mediante el formulario.
Todos tienen foto aunque no se le haya añadido (si voy a la tabla, sale bien, el que no tiene foto, no tiene nada en el campo Foto).

En el diseño del informe tengo en Encabezado el Artículo y en Detalle, además de otros campos como precio y demás, tengo el Proveedor y la Foto (tanto el campo Foto que he hecho no visible como la imagen que he creado y he llamado ImagenFoto donde se ve la foto).

He probado en todas las vistas, en Preliminar me sale lo que he comentado y en Previa la imagen que por defecto he seleccionado al insertar el objeto "Imagen" al informe, pero también en todos los artículos y en todos los proveedores.

Mil gracias.

Intentaré recrear lo que tienes y hacer unas pruebas para decirte algo concreto.

Pues no sé que decirte, porque a mí me funciona correctamente.

Prueba a borrar la imagen que has seleccionado por defecto, a ver si va estar ahí el problema (aunque no creo). Para eso, saca la propiedades de tu objeto imagen, y en la pestaña Formato, fila Imagen, le borras lo que tengas.

También prueba con esta ligera modificación del código (aunque yo con el que pusiste arriba, las veo sin problemas):

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim vNom As String
vNom = Nz(Me.Foto.Value,"")
If vNom="" Then
   Me.ImagenFoto.Picture = ""
Else
   Me.ImagenFoto.Picture = vNom
End If
End Sub

Me parece que el problema está en la versión de access que utilizas.

En access 2003 obtengo estos resultados (que son los mismos que tu):

Tabla:

Informe:

Aquí se repite la última imágen en los dos últimos casos cuando no se debería ver ninguna.

En Access 2007/2010/2013:

Tabla:

Informe:

Aquí ya se ve correctamente.

Desconozco el motivo de por qué en access 2003 no va y en versiones posteriores, con todo igual sí funciona.

Lo siento, pero más no te puedo decir...

Como por probar no pierdes nada, intenta ocultar el cuadro de imagen cuando no hay foto en el campo...

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim vNom As String
vNom = Nz(Me.Foto.Value,"")
If vNom="" Then
   Me.ImagenFoto.Visible=False
Else
   Me.ImagenFoto.Visible=True
   Me.ImagenFoto.Picture = vNom
End If
End Sub

Perdona pero hasta hoy no he tenido acceso a la base de datos. He probado lo de ocultar el cuadro de imagen y me ha funcionado. Sí!!

Mil gracias por la ayuda y la paciencia.

Gracias!!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas