¿Cómo puedo ver imágenes en un formulario de access 2010 según el contenido de un campo?

A tod@s, estoy buscando en la Internet y no encuentro la respuesta.
Tengo una base de datos con información de empleados en access 2010 y quiero ver la foto de cada uno de ellos cuando haga una búsqueda de su perfil en el formulario de consulta, pero las fotos están en una carpeta y el nombre de cada foto corresponde con el número de cédula de cada empleado.

1 respuesta

Respuesta
2

En la web de Necckito, mirate éste ejemplo.

Creo que es lo que buscas.

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/166-imagenes-en-formulario 

Si no es así ya me lo comentarás.

Hola Jacinto,

Mil gracias, ese ejemplo es lo que andaba buscando durante un buen tiempo.

Saludos,

¡Gracias! ¡Gracias! ¡Gracias! 

Hola Jacinto,

Estuve viendo y poniendo en ejecución el articulo que me recomendaste, el cual es muy bueno, pero hay algo que le falta, el ejemplo que pude descargar tiene un bache.

Si la imagen de la carpeta no coincide con el contenido del campo en cuestión (cedula) me da un error de ejecución, solo me falta esa parte para completar mi proyecto.

Ejemplo que me recomendaste:  http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/166-imagenes-en-formulario 

Gracias anticipadas. 

Así en seco ignoro de donde viene el error.

Supongo que tienes forma de averiguar el Numero de error.

También puedes mirar de hacer una Depuración y ver si te señala una línea de Código.

Para la Captura del error si no tienes a mano algunas líneas de código puedes usar algo así:

Sub UnProcedimiento()
On Error GoTo UnProcedimiento_TratamientoErrores
‘Las Instrucciones que tengas
‘……………….

UnProcedimiento_Salir:
On Error GoTo 0
Exit Sub
UnProcedimiento_TratamientoErrores:
MsgBox "Error " & Err & " en Procedimiento.: UnProcedimiento de Documento VBA: Form_Xxxxx (" & Err.Description & ")", vbCritical + vbOKOnly, " FALLO EN EL CODIGO"
Resume UnProcedimiento_Salir
End Sub

Otra cosa es que puedas poner en un enlace la parte de la BD mínima comentando donde da el error.

Private Sub Form_Current()
Dim vNom As Variant
vNom = Me.Nombre.Value
'Si no hay valor en el campo nombre no asigna ninguna imagen al
'cuadro de imagen
If IsNull(vNom) Then
Me.imgNombre.Picture = ""
Else
'Si hay valor, asigna el valor al cuadro de imagen
Dim miRuta As String
miRuta = Application.CurrentProject.Path & "\Imagenes\" & vNom

AQUI ESTA EL ERROR===> Me.imgNombre.Picture = miRuta

End If
End Sub

Este error solo sale cuando el valor del campo NOMBRE no es igual al nombre de la imagen que esta en la carpeta imágenes.

Alex:

Le echaré una ojeada mañana y miro de ayudarte.

Aquí ahora toca el descanso

A la espera....

¡Gracias! 

:)

Alex:

De nuevo en el "Tajo" que se suele decir por aquí.

Ese error se produce porque para el código no es que la Imagen no coincida es que "NO EXISTE".

Añade ésta Funcion en un Módulo Standard (Así te vale para llamarla desde otros Formularios), o si lo deseas en el Módulo del Formulario, pero solo la podrás llamar desde él mismo.

Function ExisteFichero(RutaFichero As String) As Boolean
Dim NombreFichero As String
NombreFichero = Dir(RutaFichero)
If NombreFichero <> "" Then
         ExisteFichero = True
Else
         ExisteFichero = False
End If
End Function

Entonces modifica el Código del Form_Current como te cito a continuación.

Te señalo las líneas a añadir en Negrita e Italica

Private Sub Form_Current()
Dim vNom As Variant
vNom = Me.Nombre.Value
'Si no hay valor en el campo nombre no asigna ninguna imagen al cuadro de Img
If IsNull(vNom) Then
        Me.imgNombre.Picture = ""
Else
        'Si hay valor, asigna el valor al cuadro de imagen
        Dim miRuta As String
        miRuta = Application.CurrentProject.Path & "\Imagenes\" & vNom
        If ExisteFichero(miRuta) = True Then
                   Me.imgNombre.Picture = miRuta ‘Línea que me comentas da Error
        Else
                  Me.imgNombre.Picture = ""
                   MsgBox "El Fichero " & vNom & " no está en la Carpeta de Imagenes",     vbCritical, "CAMBIA EL NOMBRE"
         End If

End If
End Sub

Ya me comentarás

Buenos días Jacinto,

Con lo que me enviaste pude resolver y ya me preparo para entregar mi proyecto, darte las gracias por tu tiempo y la ayuda que me has brindado.

Solo modifique esta linea: 

Me.imgNombre.Picture = Application.CurrentProject.Path & "\Imagenes\" & "MI IMAGEN"

Else
                  Me.imgNombre.Picture = ""   linea modificada
                   MsgBox "El Fichero " & vNom & " no está en la Carpeta de Imagenes",     vbCritical, "CAMBIA EL NOMBRE"
         End If

Para que me muestre una imagen determinada, siempre que el valor del campo no coincida con ninguna de las imágenes de la carpeta.

¡Gracias Mil! 

Saludos,

Alex

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas