• Viernes 8 de Noviembre de 2024, 10:10

Autor Tema:  Visualizar Una Imagen De Una Base De Datos  (Leído 1370 veces)

iratxe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Visualizar Una Imagen De Una Base De Datos
« en: Sábado 21 de Julio de 2007, 15:15 »
0
hola a todos:

Estoy intentando hacer un programa que tras introducir un codigo busque en la base de datos ese codigo y me muestre la foto correspondiente a ese codigo (la foto es un objeto de tipo ole).
Jo la verdad es que no tengo ni idea de como hacerlo, si me ayudais os lo agradeceria mucho.

La imagen la estoy intentando visualizar en un picturebox y utilizo DAO
El codigo que he escrito es este:

 'abro de nuevo la tabla de la base de datos, para encontrar los autores
            Set rs5 = DB.OpenRecordset("SELECT Foto from " & nomTablaFinal & " where Codigo like  codigo ", dbOpenDynaset)
             ' Comprobar que hay datos en el recordset, en este caso solo hay 1
            With rs5
                If (.BOF And .EOF) Then
                        MsgBox "No se ha encontrado ninguna foto correspondiente a ese codigo"
                Else
                     'Mostrar los datos
                    .MoveFirst
                    Do While Not .EOF
                         Picture1.DataSource = rs5("Foto")
                    Loop
               End If
             End With

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Visualizar Una Imagen De Una Base De Datos
« Respuesta #1 en: Domingo 22 de Julio de 2007, 17:54 »
0
En el código que muestras, no se observa que tipo de variable es "codigo"

Código: Text
  1.  Set rs5 = DB.OpenRecordset("SELECT Foto from " & nomTablaFinal & " where Codigo like codigo ", dbOpenDynaset)
  2.  
  3.  

Cambia el código anterior a lo siguiente:
Código: Text
  1.  Set rs5 = DB.OpenRecordset("SELECT Foto from " & nomTablaFinal & " where Codigo like " & codigo, dbOpenDynaset)
  2.  

Si existen varias fotos del código que buscas, este código que tienes, solo te mostrará la últmina foto.
Código: Text
  1.  Do While Not .EOF
  2. Picture1.DataSource = rs5("Foto")
  3. Loop
  4.  

Revisa esta discusión, puede ayudarte:
http://foros.solocodigo.com/index.php?show...19843&hl=imagen


 :comp:

iratxe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Visualizar Una Imagen De Una Base De Datos
« Respuesta #2 en: Lunes 30 de Julio de 2007, 11:58 »
0
Hola a todos:

Tras mucho intentarlo aun no he conseguido visualizar una foto de una base de datos access, la foto esta copo tipo ole y utilizo para la conexion a la base de datos DAO.

Me sale un error 481, La imagen no es valida, y me da eror en esta linea
Image1.Picture = LoadPicture(sBmp

Alguien sabe porque?

El codigo que tengo escrito es:
Private Sub Form_Load()
    Dim i As Integer
 
    ' conectamos a la BD y abrimos el recordset
    'Set db = OpenDatabase(App.Path & "\MisFotos.mdb")
    Set rs5 = DB.OpenRecordset("SELECT * FROM cd4")
    ' cargamos el combo con el campo "Nombre"
    Do Until rs5.EOF
        Combo1.AddItem rs5("Tema")
        rs5.MoveNext
    Loop
    Image1.Stretch = True
End Sub

Private Sub Combo1_Click()
    ' seleccionamos el campo "Foto" del nombre seleccionado
    Set rs5 = DB.OpenRecordset("SELECT Foto FROM cd4 WHERE Tema ='" & Combo1.Text & "'")
    CargaFoto
End Sub

Private Sub CargaFoto()
    Dim lLen As Long, sBmp As String
    Dim aByte() As Byte
    ' vamos a crear un archivo temporal en el directorio de la aplicación
    sBmp = "C:\temp.bmp"
    With rs5
        lLen = .Fields("Foto").FieldSize
        ReDim aByte(lLen) As Byte
        aByte = .Fields("Foto").GetChunk(0, lLen)
        Open sBmp For Binary As #1
        Put #1, , aByte
        Close #1
    End With
    Image1.Picture = LoadPicture(sBmp)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    ' eliminamos el archivo temporal
    Kill "C:\temp.bmp"
End Sub

Graciass