Resumen Grabar y recuperar imágenes de una base de datos.

Para guardar imágenes en una base de datos de Access, yo hago lo siguiente:
Todo el código siguiente es parcial
Después de creada la base y la tabla creo los siguientes campos:

        'Nombre o texto de la imagen
Set cCampos(0) = Tabla.CreateField("Nombre", dbText, 255)
        'La extensión del fichero o imagen
Set cCampos(1) = Tabla.CreateField("Extensión", dbText, 3)
        'Dimensiones en pixels
Set cCampos(2) = Tabla.CreateField("Ancho", dbLong) 'dbInteger también vale
Set cCampos(3) = Tabla.CreateField("Alto", dbLong) 'dbInteger también
vale
        ' El tipo si lo soporta VB 5.0 o no
Set cCampos(4) = Tabla.CreateField("Tipo", dbByte)
        ' Este campo contendrá la imagen
Set cCampos(5) = Tabla.CreateField("Imagen", dbLongBinary)

    Para guardar la imagen en el campo Imagen, esto que sigue en
procedimiento

Dim númArch As Integer
Dim númBytes As Long
Dim BytesImagen As Variant ' O String

If Ruta <> "" Then
    númArch = FreeFile
    'Hallamos los bytes del fichero
    númBytes = FileLen(Ruta)
    Open Ruta For Binary Access Read As númArch
        BytesImagen = Input(númBytes, númArch)
    Close númArch ' Cierra el archivo.
    On Error GoTo sin_edit
    BytesImagen = StrConv(BytesImagen, vbFromUnicode)
    ' Guardar la imagen en el campo
    Data1.Recordset!Imagen.AppendChunk BytesImagen
    ' La siguiente instrucción también vale
    'Data1.Recordset!Imagen = BytesImagen
........................
........................

Para recuperar la Imagen esto que sigue en procedimiento

Dim númArch As Integer
Dim númBytes As Long
Dim BytesImagen As String

 On Error GoTo cerrar
 BytesImagen = Data1.Recordset!Imagen
 BytesImagen = StrConv(BytesImagen, vbUnicode)
 On Error GoTo 0
 extensión = lblExtensión
    DirTempPath Ruta ' Halla el directorio temporal de Windows
 Ruta = Ruta & "bif_MRL02_NZ01." & extensión
    On Error Resume Next
    ' Si hay un fichero anterior eliminarlo
    Kill Ruta
    númArch = FreeFile
    númBytes = Len(BytesImagen)
    Open Ruta For Binary Access Write As númArch
         Put #númArch, , BytesImagen
    Close númArch
   ' Para una imagen "ICO", "BMP", "DIB", "RLE", "WMF", "EMF", "JPG", "GIF"
            With Picture1
                .AutoSize = True
                .Picture = LoadPicture(Ruta)
                .AutoSize = False
            End With
.........................
.........................





Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com