Access - Imágenes en Access

 
Vista:

Imágenes en Access

Publicado por Claudia R (1 intervención) el 23/01/2005 04:13:31
Quiero insertar diferentes imagenes a una tabla de access que corresponden a la firma de los socios de un club, mi problema es que son mas de 1,000, tengo un software para visualizarlas en donde las puedo insertar pero de una en una.
Intenté arrastrándolas, a pesar de que en la tabla se ve la leyenda "imagen de mapa de bits" al tratar de observarla desde el softawre no se puede ver.
Alguien tendrá alguna solución?
Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Inserción masiva de imágenes en una tabla

Publicado por Alejandro (4142 intervenciones) el 23/05/2023 18:45:08
Para insertar múltiples imágenes en una tabla de Access de manera eficiente, puedes utilizar un enfoque basado en el lenguaje de programación VBA de Access. A continuación, te proporciono un ejemplo de cómo puedes lograrlo:

1. Crea una columna en tu tabla para almacenar las imágenes. Asegúrate de que el tipo de datos sea "Objeto OLE" o "Adjunto".

2. Crea una carpeta en tu sistema para almacenar las imágenes. Por ejemplo, puedes crear una carpeta llamada "Firmas" en el escritorio.

3. En el código VBA, utiliza el objeto `FileSystemObject` para recorrer los archivos de la carpeta y realizar la inserción en la tabla. Asegúrate de tener la referencia "Microsoft Scripting Runtime" habilitada en tu proyecto VBA.

A continuación se muestra un ejemplo de código para insertar las imágenes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Sub InsertarImagenes()
    Dim fso As Scripting.FileSystemObject
    Dim folderPath As String
    Dim folder As Scripting.Folder
    Dim file As Scripting.File
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim fieldName As String
    Dim filePath As String
 
    ' Ruta de la carpeta que contiene las imágenes
    folderPath = "C:\Users\TuUsuario\Desktop\Firmas"
 
    ' Nombre del campo en la tabla donde se insertarán las imágenes
    fieldName = "Firma"
 
    ' Establecer la referencia a la base de datos actual
    Set db = CurrentDb()
 
    ' Abrir la tabla donde se insertarán las imágenes
    Set rs = db.OpenRecordset("NombreTabla")
 
    ' Crear un objeto FileSystemObject
    Set fso = New Scripting.FileSystemObject
 
    ' Obtener la carpeta que contiene las imágenes
    Set folder = fso.GetFolder(folderPath)
 
    ' Recorrer los archivos de la carpeta
    For Each file In folder.Files
        ' Ruta completa del archivo de imagen
        filePath = folderPath & "\" & file.Name
 
        ' Insertar la imagen en el registro actual del recordset
        rs.AddNew
        rs(fieldName).LoadFromFile filePath
        rs.Update
    Next file
 
    ' Cerrar el recordset y liberar los recursos
    rs.Close
    Set rs = Nothing
 
    ' Cerrar la base de datos y liberar los recursos
    db.Close
    Set db = Nothing
 
    ' Mostrar un mensaje de finalización
    MsgBox "Las imágenes se han insertado en la tabla correctamente.", vbInformation
End Sub

Asegúrate de reemplazar "NombreTabla" con el nombre de tu tabla y "Firma" con el nombre del campo donde deseas insertar las imágenes.

Antes de ejecutar el código, ajusta la variable `folderPath` para que coincida con la ruta de la carpeta que contiene tus imágenes de firma.

Una vez ejecutado el código, todas las imágenes de la carpeta se insertarán en la tabla en los registros correspondientes.

Ten en cuenta que este enfoque es adecuado para un número considerable de imágenes. Si tienes una gran cantidad de imágenes o archivos de gran tamaño, puede ser necesario ajustar el código para manejar la inserción de manera más eficiente.

Espero que esta solución te sea útil para insertar las imágenes masivamente en tu tabla de Access.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar