Insertar datos adjuntos desde Form con vba

En un formulario (sin Origen del Registro) tengo tres textBox, 1 combobox y una ventana para insertar datos adjuntos (una imagen y dos pdf), más un botón para guardar y otro para cancelar.

En el botón Guardar tengo el código básico para generar un nuevo registro en la tabla:

dim db as database

dim rs as recordset

set db.....etc

 rs.AddNew

rs!Campo1 = me.txtCampo1.Value

rs!Campo2 = me.cboCampo2.Value

...etc

rs.Update

Sin ningún problema para campos de texto, fecha y numero. El problema lo tengo en que no sé como hacer para que se carguen los datos adjuntos. No sé qué poner para abrir una ventana de dialogo, elegir la carpeta y los 3 archivos que quiero insertar como datos.

He mirado tutoriales sobre el comando LoadFromFile pero no acabo de entender su funcionamiento.

2 respuestas

Respuesta
1

Este es un proceso de como abrir esa ventana de busqueda.(FileDialog)

https://www.youtube.com/playlist?list=PLsbpurIPHmoK2IADHnu_jTbdH6iZLJnGj 

El código esta en la descripción del vídeo.

Ojo: Este ejemplo solo para guardar la dirección de una imagen vinculada, en un cuadro de texto.

Te paso el ejemplo por el proceso para abrir el cuadro de búsqueda es el mismo que buscas tu.

Muchas gracias. Esto mejora mucho mi primera idea de datos adjuntos. Lo importante era la imagen y con esta rutina mejoro la base. Menos peso. Los pdf eran un extra que me puedo permitir eliminar.

De nuevo, gracias por la labor que hacéis los expertos.

Te invito a suscribirte a mi canal encontraras ejercicios, para descargar .

Respuesta
1

De antemano te digo que lo que te dice Antonio es lo más correcto para "localizar" los archivos a guardar. Pero, si te tuviera que dar un consejo te diría que no uses campos de datos adjuntos, son una auténtica mie... Es preferible que uses el objeto filedialog y en cada campo guardar la ruta a ese archivo. Luego siempre puedes usar lo de

Application. Followhyperlink Ruta

Por otro lado, ¿para qué decirle lo de dim db as database? ¿En dónde estás? En una base de datos

¿Para qué decirle lo de recordset? Si Access funciona con registros

¿Para qué lo de currentdatabase si ya estás en ella

Es como si te recibo en mi casa y te digo, Hola, estoy en mi cada, si ya me estás viendo en ella.

Para guardar puedes poner simplemente

docmd.runsql "insert into tablaquesea(A, B, C) values('" & me.texto1 & "', '" & me.texto2 & "', '" & me.texto3 & "')"

¡Gracias!  La respuesta de Antonio me va perfecta. Respecto a las instrucciones que comentas, hace mucho solicite ayuda de un experto para añadir registros a una tabla desde un formulario y me aconsejo este sistema. Era para Acces 2003. Supongo que habrá mejorado, pero esta forma siempre me ha funcionado bien y la tengo bastante clara dados mis escasos conocimientos. De todas formas, gracias por tu aporte. Intentaré como siempre, en plan autodidacta, trabajar con esas ordenes que me has aconsejado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas