Agregar múltiples imágenes a un formulario en access

Nuevamente acudiendo a sus conocimientos, estoy ayudando a un amigo a llevar su control de propiedades y genere en ACCESS para que pueda subir el registro fotográfico de una propiedad, en un formulario deje 10 cuadro de imágenes y cada uno con un control para pueda adjuntarla y guardarla con el nombre principal más un numero asignado. Lo engorroso es que se debe hacer una por una y hay veces que son más de 20 fotos. Debo mencionar que solo guardo la ruta de la imagen en la base de datos. Este es el comando que utilizo.

Private Sub Imagen_1_Click()
On Error GoTo CapturarError
 Dim fd As FileDialog
       Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim SeleccionaElemento As Variant
        With fd
        .Filters.Clear
         .AllowMultiSelect = False
         .InitialFileName = CurrentProject.Path & "\Tools\Imagenes\Propiedades"
         .Filters.Add "Todos los Archivos", "*.*"
        .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.BMP", 1
        If .Show = -1 Then
            For Each SeleccionaElemento In .SelectedItems
               Me.Imagen1.Picture = Dir(SeleccionaElemento)
                 Me.TxtImagen1.Value = Mid(SeleccionaElemento, (IIf(InStrRev(SeleccionaElemento, ":") > InStrRev(SeleccionaElemento, "\"), InStrRev(SeleccionaElemento, ":"), InStrRev(SeleccionaElemento, "\")) + 1))
                DoCmd.RunCommand acCmdRefresh
            Next SeleccionaElemento
            MsgBox "Archivo adjunto con exito", vbInformation, "Aviso.."
        Else
        End If
    End With
    Set fd = Nothing
SeguirPorAqui:
Exit Sub
CapturarError:
    If Err.Number = 2220 Then
            MsgBox "¡¡Debes seleccionar una imagen desde la carpeta Imagenes!!", vbInformation, "Aviso.."
        Else
    End If
            MsgBox "Se ha producido el error Nº: " & Err.Number & " " & Err.Description, vbInformation, "Error"
Resume SeguirPorAqui
End Sub

Como se puede hacer que pueda seleccionar todas las imágenes y se agreguen a cada uno de los cuadro Imagen automáticamente con el nombre y numero correlativo asignado automáticamente sin necesidad de estar escribiendo.

1 Respuesta

Respuesta
2

En primer lugar, comentarte que si tienes 10 cuadros de imagen y en algún caso tienes 20 archivos de imagen, vas a tener un problema para mostrarlas todas...

Te he preparado un ejemplo con dos posibilidades (yo usé 5 controles de imagen): http://www.filebig.net/files/NPWnFTnYYf

El primero (FDatos) simplemente coge las imágenes seleccionadas y las guarda en campos de la tabla (campos que están ocultos en el formulario ) y muestra las imágenes en los controles. Si hay menos imágenes que controles, los que "sobran" los deja en blanco. En este caso las imágenes no se renombran ni mueven de carpeta ni nada.

En el segundo, al seleccionar las imágenes se copian a una carpeta específica (en tu caso sería Tools\Imagenes\Propiedades), y se renombran con el contenido de un campo y un correlativo para ese nombre, luego se guardan en la tabla y se muestran en los controles de imagen.

En ninguno de los dos casos he programado controles para validar datos. Además, para automatizar al máximo el proceso, los campos donde se guardan las rutas de la imagen (en el primer ejemplo) o solo el nombre (segundo ejemplo) se llaman Foto1, Foto2... y los controles de imagen Imagen1, Imagen2...

¡Gracias! Sveinbjorn El Rojo, como siempre un genio, me resulto a la perfección y los dos ejemplos muy bien explicados, muchas gracias por su ayuda y conocimientos...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas