Access - Extraer imagenes de un campo blob

 
Vista:

Extraer imagenes de un campo blob

Publicado por Juancho (6 intervenciones) el 18/08/2007 15:17:38
Me gustaria extraer todas las imagenes (en jpg o Bmp) de los campos BLOB que tengo en una base de datos access pero no encuentro la forma.
Actualmente estos campos los visualizo (al dar doble click sobre el campo) con el "Microsoft Photo Editor 3.0" del office 97 y no me permite guardar estas imagenes en la visualizacion.

Muchas 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

Extraer imágenes de campos BLOB

Publicado por Alejandro (4142 intervenciones) el 17/08/2023 22:00:14
Para extraer imágenes almacenadas en campos BLOB (Binary Large Object) en una base de datos Access, puedes utilizar código VBA para exportar las imágenes a archivos individuales en formato JPG o BMP. A continuación se muestra cómo hacerlo:

1. Abre tu base de datos en Microsoft Access.

2. Ve a la pestaña "Desarrollador" (si no la tienes habilitada, puedes habilitarla desde "Archivo" > "Opciones" > "Personalizar cinta de opciones").

3. Haz clic en "Visual Basic" para abrir el Editor de Visual Basic (VBE).

4. En el VBE, ve al menú "Insertar" y selecciona "Módulo" para crear un nuevo módulo.

5. Agrega el siguiente código VBA para extraer las imágenes y guardarlas como archivos JPG o BMP:

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
Sub ExtraerImagenesDesdeCamposBLOB()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim fld As DAO.Field
    Dim strSQL As String
    Dim outputPath As String
    Dim i As Long
 
    ' Ruta donde se guardarán las imágenes
    outputPath = "C:\Ruta\De\Guardado\"
 
    ' Consulta SQL para seleccionar los registros con campos BLOB
    strSQL = "SELECT CampoBLOB FROM TuTabla"
 
    ' Abre la base de datos y la consulta
    Set db = CurrentDb
    Set rs = db.OpenRecordset(strSQL)
 
    ' Recorre los registros y extrae las imágenes
    i = 1
    Do While Not rs.EOF
        Set fld = rs.Fields("CampoBLOB")
 
        If Not fld.Value = "" Then
            Dim img As Object
            Set img = CreateObject("WIA.ImageFile")
            img.LoadFromMemory fld.Value
 
            ' Guarda la imagen en formato JPG
            img.SaveFile outputPath & "Imagen" & i & ".jpg"
 
            ' También puedes guardarla en formato BMP
            ' img.SaveFile outputPath & "Imagen" & i & ".bmp"
 
            i = i + 1
        End If
 
        rs.MoveNext
    Loop
 
    ' Cierra el recordset y la base de datos
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

Asegúrate de reemplazar "CampoBLOB" con el nombre del campo BLOB en tu tabla y "TuTabla" con el nombre de tu tabla. Además, establece la variable `outputPath` con la ruta donde deseas guardar las imágenes.

6. Cierra el Editor de Visual Basic y guarda los cambios en tu base de datos.

7. Ejecuta el procedimiento `ExtraerImagenesDesdeCamposBLOB` desde el menú "Macros" o "Desarrollador" > "Macros" en Access para extraer y guardar las imágenes en la ubicación especificada.

Recuerda que este proceso extraerá las imágenes de los campos BLOB y las guardará como archivos JPG o BMP en la ubicación indicada. Asegúrate de tener permisos adecuados para escribir en la ubicación de guardado y de que las imágenes estén en un formato compatible con el método de extracción utilizado.
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