Programación General > Visual Basic para principiantes
Visualizar Una Imagen De Una Base De Datos
(1/1)
iratxe:
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:
En el código que muestras, no se observa que tipo de variable es "codigo"
--- Código: Text --- Set rs5 = DB.OpenRecordset("SELECT Foto from " & nomTablaFinal & " where Codigo like codigo ", dbOpenDynaset)
Cambia el código anterior a lo siguiente:
--- Código: Text --- Set rs5 = DB.OpenRecordset("SELECT Foto from " & nomTablaFinal & " where Codigo like " & codigo, dbOpenDynaset)
Si existen varias fotos del código que buscas, este código que tienes, solo te mostrará la últmina foto.
--- Código: Text --- Do While Not .EOFPicture1.DataSource = rs5("Foto")Loop
Revisa esta discusión, puede ayudarte:
http://foros.solocodigo.com/index.php?show...19843&hl=imagen
:comp:
iratxe:
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
Navegación
Ir a la versión completa