Areal76, quiero ejecutar el método que mencionas para presentar imágenes en un formulario sin inflar la base de dato (ya que he llegado al tope de la capacidad permitida por Access) pero no sé como hacerlo, he creado la tabla donde se almacenará la ruta y el formulario que mostrará la imagen, pero no sé donde va el código o que evento lo genera, espero que me puedas apoyar. Saludos P.D. No soy experto en BD
- Anónimoahora mismo
1 respuesta más de otro experto
Respuesta de areal76
1
1
areal76, no es bueno el q t ayuda sino el q no t molesta
Al agregar imágenes en una base de access, la base aumenta mucho su peso o tamaño es mejor crear una tabla en donde se almacene la dirección o path de la imagen y luego en el form agregar un objeto IMAGE y en la propiedad PICTURE se coloca la dirección guardada en la tabla. A continuación agrego el código para hacer el proceso: 'Referencia Requerida 'Microsoft Office 12.0 Object Library 'Para utilizar esta referencia en el menu de la ventana VBA ir a Tools, References... 'En Available reference: ' Seleccionar: 'Microsoft Office 12.0 Object Library y clic en OK Dim RUTA As Office.FileDialog Set RUTA = Application.FileDialog(msoFileDialogOpen) With RUTA With .FILTERS .Clear .Add "Picture", "*.jpg;*.gif;*.png", 1 .Add "All", "*.*", 2 End With .TITLE = "Seleccionar Imagen" .AllowMultiSelect = False .InitialFileName = CurrentProject.Path .InitialView = msoFileDialogViewDetails If .Show Then fArchivoImagen = .SelectedItems(1) End If End With If IsEmpty(fArchivoImagen) Then MsgBox "Process canceled by user", vbCritical, "Analysis" Else Me.txtDireccion.Value = fArchivoImagen End If 'se debe guardar en la tabla la variable fArchivoImagen docmd.runsql "update tabla set campoparaImagen = ' " & trim(fArchivoImagen) & " ' where ID (campo Identificador) = valorAsignado " En el RECORD SOURCE del form1 seleccionamos la tabla que contiene la dirección de la imagen la llamare IMÁGENES y el campo que contiene la dirección de la imagen le llamare PATH Ahora en el form pegamos un objeto IMAGE lo llamare Image1 en un form lo llamare Form1 en el ON LOAD o Form_Load() del form1 agrego este codigo me.image1.picture = [path] y en el evento ON CURRENT o Form_Current() del form1 agrego el codigo me.image1.picture = [path] Listo con esto tienes un form que muestra imágenes y no infla en exceso tu base de datos
Ok gracias... pero no C nada de códigos por que estoy empezando a utilizar access... ¿cómo haría yo para introducir una imagen en un formulario...?
¿Cuál es tu email? Te enviare una base de datos con un formulario que muestra e introduce imágenes en una tabla.
Te envíe a tu correo una base de datos comprimida en el archivo adjunto ejemplo.zip en donde: La tabla empleados contiene un campo llamado fotografía que almacena la dirección en el disco duro en donde se encuentra almacenada la imagen. El formulario imágenes contiene la info del empleado y su fotografía (en este momento un carro deportivo). Abajo de la foto del carro esta un botón ADD PICTURE... es este botón el que debes presionar para cambiar la imagen; para ver el código haces clic derecho sobre el botón ADD PICTURE... y haces clic en la primera opción del menu contextual Build event... a continuación se mostrara el código VBA para cambiar al siguiente registro hace clic en el botón NEXT o PREVIOUS según corresponda. Esta es la forma más simple que conozco para relacionar imágenes con access 2007 sin inflar mucho la base de datos, el otro método es adicionando imágenes a una tabla así como lo haces con los correos en outlook pero ese método no es recomendable ya que el tamaño de la base se hace demasiado grande.