Cómo solucionar Error 438 en VBA

Estoy adaptando un código que me implementaron en base de datos que me permite añadir archivos, y que estos los guarde en una carpeta aparte. Es más complejo que el que tiene Neckkito, pues este no abre el diálogo para navegar hasta la imagen.

He conseguido arreglar varios de ellos, pero me he atrancado con un Error 438, que no soy capaz de encontrar dónde está el error. Este se muestra al pasar de un registro a otro.

Además, la imagen me la carga en todos lo registros si lo tengo en formularios continuos, pero quiero que me cargue la imagen en cada registro en particular.

https://www.dropbox.com/s/f6apqh49jqrgnqw/Base%20de%20datos.accdb?dl=0 

1 Respuesta

Respuesta
3

Diego, antes de nada, déjame felicitarte porque vives en un pueblo precioso. Dicho esto, eso te pasa porque el control imagen no tiene origen de control, es independiente. Mira, si tengo una tabla(dios mío, que sería de nosotros si no existiera la base Neptuno) con los campos NombreCompañia, nombrecontacto y Foto y hago un formulario continuo, al que le puedo poner lo de la función buscaruta

La única diferencia es que en el control imagen en la solapa datos, en origen del control, le he puesto Foto

Hola, Icue. Muchas gracias. Sí, lo entiendo. He puesto en el origen del campo ImagenFoto1, Imagen1, que es la ruta. Pero no funciona. Creo que es porque tengo que incluir la función buscarruta, que no sé hacerlo. Aún con todo esto, me sigue saltando el error.

Diego, si quieres, repito, si quieres, mándame un mensaje(SOLO EL MENSAJE) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Diego, ya que si no sé quien me escribe ni los abro.

Hola, Icue. Te agradezco que me envíes un ejemplo, pero creo que no me expliqué antes. Tengo este error que ves en pantalla, que es el que quiero solucionar. ¿Eso se debe a lo que tú estás diciendo?

Te he enviado un mail para que me mandes el ejemplo. A ver si es más simple que lo que tengo. ¡Gracias!

¿Has probado, en el editor de VB en Herramientas-Referencias- y marcar la casilla de Microsoft Office 16.0 Object Library

Es que yo me muevo por tus registros y no me aparece nada.

Me ha servido tu ejemplo. De hecho, ya funciona. Lo que pasa es que he añadido para que en vez de aparecer la ruta completa, solo aparezca el nombre del archivo. El problema que tengo que es, si cierro y vuelvo a abrir la base de datos, no carga las imágenes (aunque el nombre del archivo sí está). Te envío la base de datos con registros para que la pruebes y veas lo que te digo.

https://www.dropbox.com/s/glti01l8hkhxd0q/Bases%20de%20datos.7z?dl=0 

Sé por qué no carga las imágenes. Y es que ImagenFoto1 está cogiendo solo el nombre del archivo, y tendría que coger la ruta, pero no sé ponerlo.

Suponiendo que las imágenes estén todas en una carpeta, situada en la misma carpeta donde está la base de datos puedes usar algo como

Dim ruta As String
ruta = Application.CurrentProject.Path & "\imagenesusar\" & "" & "" & Me.imagen1 & "" & "" & ".jpg"
En esta caso, la carpeta donde están las imágenes es imagenesusar.

¿Eso dónde tendría que añadirlo?

He probado en varios sitios, pero nada.

He intentando a ponerlo en la función buscaruta, cuando recibe el enfoque imagen1, y nada. ¿Podrías darme alguna orientación más? Gracias

Lo siento, tal como tienes hecha la base no puedo ayudarte. Además me desplazo por los registros y no me sale ese error que dices.

Ya funciona. He creado un módulo, y en la imagen del formulario he puesto = ruta() & [Imagen1]

Muchas gracias, de verdad, por las molestias que te has tomado. Un saludo.

No necesitas ningún módulo, te envié por correo la solución, mucho más simple.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas