Mostrar varias fotos en un formulario

Me gustaría saber cómo puedo adaptar este código para que se muestres varias fotos en un formulario. He realizado varias pruebas y no lo consigo. El código que tengo es el siguiente:

Private Sub Form_Current()
On Error GoTo Error_Form_Current
Dim rutaimagen As String
rutaimagen = CurrentProject.Path & "\fotosIden\" & Me.[id] & ".jpg"
[Imagen100].Picture = rutaimagen

Me.Refresh

If IsNull([id]) Then
[Imagen100].Picture = CurrentProject.Path & "\FotosIden\SinFoto.jpg"
End If
Exit Sub
Error_Form_Current:
If Err = 2220 Or Err = 2114 Then
[Imagen100].Picture = CurrentProject.Path & "\FotosIden\SinFoto.jpg"

Exit Sub
End If

End

He creado más controles de imágenes y he cambiado los nombres de los controles, por ejemplo, en vez de [imagen100], por [imagen25], etc. Donde dice rutaimagen, por rutaimagen2. Etc

El caso es que no he conseguido que funcione, me da errores.

A ver si me podeis echar una mano.

2 respuestas

Respuesta
1

Lo normal cuando se genera una ruta y se desconoce si existe el objeto, es verificar la ruta antes de aplicarla.

Como se desea aplicar una imagen que sustituya a la no localizada, lo plantearía así:

Dim rutaimagen As String
rutaimagen = CurrentProject.Path & "\fotosIden\" & Me.[id] & ".jpg"
[Imagen100].Picture = IIF(IF Dir(rutaimagen) <> "" ,rutaimagen,  CurrentProject.Path & "\FotosIden\SinFoto.jpg")

Otra opción es aplicar la de 'por defecto' y si existe la adecuada, sustituirla:

Dim rutaimagen As String
[Imagen100].Picture = CurrentProject.Path & "\FotosIden\SinFoto.jpg"
rutaimagen = CurrentProject.Path & "\fotosIden\" & Me.[id] & ".jpg"
IF Dir(rutaimagen) <> ""  Then [Imagen100].Picture = rutaimagen 

Se puede verificar si existe el id y de no existir finalizar (Exit Sub) y hacerlo antes de crear la ruta (los NULL son un tipo de dato 'juguetón')

Respuesta
1

Lo puedes hacer con la minga. Mira, si tengo un formulario al que le he añadido 10 controles imagen, que para mi comodidad he llamado IM1, IM2,... Le pongo un botón de comando que no haría falta para nada, ya que el código lo puedes poner en cualquier evento, pero prefiero que lo veas.

Cuando pulso el botón

Y el código es sencillísimo, sin elucubraciones

Private Sub Comando11_Click()
Dim i As Byte, ctl As Control
For i = 1 To 10
Set ctl = Controls("IM" & i)
ctl.Picture = "C:\users\gonza\documentos\imagenesusar\" & "cc" & i & ".jpg"
Next
End Sub

de todas formas, como creo que tienes mi correo, si quieres ampliar dímelo vía email.

En primer lugar, discúlpame por no haber contestado antes, he estado muy liado con temas familiares y laborales. Por ello, no he podido tampoco poner en práctica el código que me has facilitado. Espero poder hacerlo mañana, cuando tenga el resultado te lo comentare. 

En segundo lugar, darte nuevamente las gracias por tu ayuda. 

Saludos Julián, un abrazo. 

Buenas noches, por fin he podido ponerme manos a la obra.

Gracias Julián por tu ayuda. Perfecto, he podido mostrar varias fotos en el mismo formulario con el código que me has facilitado. Así que solucionado. 

Saludos, un abrazo

Me alegro, ya te dije que cualquier cosa que necesites, dímelo. También puedes usar las imágenes para facturar, por ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas