Insertar imagen en Objeto OLE de Access

Toni
15 de Diciembre del 2008
Buenas a todos!!

Tengo un problema que he de resolver urgentemente:

Desde mi programa VB, he de introducir imágenes en una tabla Access que contiene un campo OLE. Las imágenes almacenadas en la base de datos las muestro en un informe a posteriori.

El problema está en la forma de almacenar estas imágenes en la tabla pertinente. Si utilizo una sentencia SQL donde le indico el path de la imagen a guardar, se guarda un objeto "Datos Binarios Largos", y si utilizo una sentencia SQL donde le indico que coja el valor de un Picture Box, me pasa exactamente igual, se almacenan "Datos Binarios Largos" en el campo de mi tabla. Para poder visualizar en el informe las imágenes, la única forma que he encontrado es insertando en la tabla campos con formato "Foto de Microsoft Photo Editor 3.0" a partir del Access, y es lo que no se hacer desde una sentencia SQL ya que siempre se me guardan como "Datos Binarios Largos" y no hay forma de visualizarlas en el informe.

¿Alguien sabe como guardar desde VB en Access una imagen como "Foto de Microsoft Photo Editor 3.0", o como visualizar "Datos Binarios Largos" en el informe?
He leído en alguna web que puede que se solucione almacenando el código hexadecimal de la imagen, pero no se hacer esto.¿Alguien lo sabe?

Muchas gracias (vaya parrafada!!)

carlosm
15 de Diciembre del 2008
Tenia un problema similar pero yo utilizo el crystal report y se ven las imagenes perfectamente. Tienes razón VB almacena las imagenes en Access como Datos Binarios Largos pero estos son reconocidos perfectamente por Crystal report. Te mando este código por si te sirve:

Option Explicit

Private Sub Boton1_Click()
Data1.Recordset.MoveLast
'aqui grabo la imagen en la tabla y un texto
Data1.Recordset.AddNew
Data1.Recordset("Nombre") = Text1

Data1.Recordset("foto") = Image1.DataSource
Data1.Recordset.Update


End Sub

Private Sub Command1_Click()
'aqui selecciono una imagen para mostrar en un image o picturebox, es mejor la image porque adpta la imagen al marco especificado
CD1.Filter = "archivos (*.bmp)|*.bmp"
CD1.ShowOpen
Image1.Picture = LoadPicture(CD1.FileName)
'Picture1.Picture = LoadPicture(CD1.FileName)
End Sub

despues creas tu report.rpt insertando los campos requeridos, incluyendo el campo imagen y listo.

Espero que te sirva esto.
Saludos,

Carlos

diacrisis
15 de Diciembre del 2008
que quieres decir con cd1 prove por que lo nesecitaba pero me da error me dice que no e declarado la variable