vba - una - insertar imagen en formulario access
Guardar imagen como objeto OLE, en Access (1)
Tengo una tabla con un campo que es de tipo Objeto OLE. Luego tengo un formulario con varios campos. Algunos son solo campos de texto. Pero, también tengo un objeto Imagen en el formulario. Cuando un usuario hace clic en un botón, se abre un cuadro de diálogo y puede capturar una foto. Una vez que seleccionan la foto, el objeto Imagen muestra esa imagen. Quiero guardar esa imagen en la base de datos. Lo que solo parece guardar una referencia de dónde se encuentra el archivo, en la computadora. Por lo tanto, esto no funcionaría si se mueve la base de datos. Aquí está el código que tengo:
Dim wrkCurrent As DAO.Workspace
Dim dbs As DAO.Database
Dim rstPerson As DAO.Recordset
Set wrkCurrent = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rstPerson = dbs.OpenRecordset("SELECT * FROM tbl_person WHERE id =" & ID)
With rstPerson
.Edit
!bio_photo = Me.Image37.picture
.Update
End With
¿Cómo guardaría el archivo de imagen en el campo OLE, para poder cargarlo de nuevo en el objeto Imagen, en el formulario, más adelante?
Gracias
Responder:
Entonces, lo que terminé haciendo fue seguir este https://support.microsoft.com/en-us/kb/210486
Uso la función readBLOB para leer el archivo y guardarlo en la base de datos. Luego, cuando ejecuto un informe o abro un formulario que tiene la imagen, onload, uso la función WriteBlob para escribir el archivo en una carpeta temporal y luego usar esa ruta para llenar un objeto Image.
Las bases de datos pueden crecer a tamaños enormes cuando comienzas a incrustar imágenes, lo que genera consultas más lentas, bloqueos, tiempos de espera y usuarios insatisfechos. Utilice OLE con precaución al agregar imágenes a una base de datos
La búsqueda simple de Google tiene cómo cargar el objeto ole de la carpeta en la tabla
Y una búsqueda en este sitio aparece con imágenes adjuntas automáticamente usando vba