Usar Tabla con Ficheros adjuntos en una consulta de ACCESS

Tengo una tabla con un pdf para cada registro (dos columnas, una con el nombre de un país y otra con un pdf con información del país). Esta tabla la usaré de "maestra". Por otro lado tengo otra tabla en la que tengo muchos registros con varios países, y lo que quiero hacer es una consulta de creación de tabla en la que de esta tabla "maestra" cruce los países con la de registros y les adjunte el documento. Al hacerlo en Access me da el siguiente mensaje: "Los campos multivalor no se permiten en instrucciones SELECT INFO". ¿Alguna sugerencia para poder incorporar el pdf en una nueva tabla para poder enviar esa tabla por correo electrónico con el PDF adjunto? Imagino que si hay solución será a través de programación, así que estoy dispuesto a todo.

Respuesta
2

Joaquin, quiero hacerte la salvedad de que personalmente opino que los campos de datos adjuntos son una auténtica mierda. Es preferible usar campos texto, o bien para la ruta o si guardas los documentos en una misma carpeta, guardar sólo el nombre del documento y en ambos casos usar

Application. FollowHyperlink

Pero, si tengo una tabla Clientes con un campo Registro de datos anexados

Y por otro lado tengo una tabla Registros con

Creo una consulta de actualización como la de la imagen

Cuando la ejecuto

Observa que sólo a los registros con Alemania, Argentina y España le ha "añadido" el archivo adjunto. Pero como te decía, no me gusta nada.

Muchas gracias Icue por tu respuesta. Con lo que planteas me surge una duda, ¿cómo genero en la primera tabla (la que tú llamas Cliente) el campo de Registro de datos anexado? En mi caso esa primera tabla yo la genero de la unión y filtro de otras, por lo que no sé si en la consulta de creación de tabla es posible crear ese campo y dejarlo vacío (que entiendo es lo que tú propones).

Una vez hecha la consulta, si ejecuto en una Macro la instrucción EnviarPorCorreoObjetoDeBaseDeDatos y envio la tabla, ¿sabes si puede enviar además de la tabla los ficheros adjuntos?

Para no llenar esta página de imágenes y códigos, te propongo que, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo, con ambas cosas.

Si lo haces, en el asunto del mensaje pon tu alias Joaquín García, ya que si no sé quien me escribe ni los abro.

1 respuesta más de otro experto

Respuesta
2

Como complemento a la respuesta que te da Icue, comentarte, por si no lo sabes, que un archivo Access si llega a los 2 Gb de tamaño, "casca" y te quedará inutilizable. Y con lo que pretendes hacer es probable que alcances ese límite mucho antes de lo esperado, porque estás añadiendo archivos adjuntos inncesariamente.

Por hacer un cálculo "a lo simple": imagina que cada uno de tus adjuntos pesa (dentro de la BD) 1 Mb y tienes 10 países en tu tabla "maestra", y en la otra tabla tienes 100 registros por país. Si haces la operación que propones, pasarás de tener un "peso" en tu BD de archivos adjuntos de 10 Mb (10 países x 1Md cada adjunto) a 1010 Mb (10 países x 1 Mb en una tabla + 10x100x 1Mb en la otra). Si tuvieras 100 países con 100 registros por país, ya superarías por mucho los 2 Gb de límite y tu base de datos "a la porra"...

A lo que voy es que como ya tienes una vez cada adjunto en tu tabla de países, no necesitas volver a copiar esos adjuntos en otra tabla, puedes conseguir el mismo "efecto" haciendo una consulta de selección sobre las dos tabla, cogiendo los datos que necesites de tu tabla registros y añadiendo el campo datos adjuntos de la maestra, y luego usas esa consulta para enviar los emails.

Un saludo.


Muchas gracias Sveinbjorn El Rojo por tu respuesta. He contestado a Icue porque tengo una duda que te traslado a ti también. Si utilizando la instrucción en una Macro EnviarPorCorreoObjetoDeBaseDeDatos, ¿envía los ficheros adjuntos? ¿cómo lo hace?.

En cuanto al tamaño de los ficheros no creo que sea un problema. Estamos hablando de un pdf de 400kb cada uno. La idea es incorporar 200 como máximo y luego trasladarlo a lo mejor a 1000 registros como máximo en cada ejecución.

Mucahs gracias

esto es lo que me llega al enviar el correo y abrir el fichero excel

Esa macro que comentas sirve para enviar por correo objetos de la base de datos, como tablas, consultas, informes, formularios... pero no te sirve para enviar el contenido de un campo de datos adjuntos.

Te paso el enlace a otra pregunta que respondí sobre este mismo asunto: Enviar por Correo archivo adjunto en un campo access

Y te adjunto aquí de nuevo el ejemplo: http://www.filebig.net/files/dKNVLDhYSp 

En cuan to a lo del tamaño de los adjuntos, si bien puede no ser un problema en cuanto a superar al límite, permíteme comentarte dos cosas:

1º/ Al aumentar el tamaño de la BD, su rendimiento va a empeorar (te irá más lenta para abrir, ejecutar procesos...)

2º/ Como Access es un gestor relacional de bases de datos, repetir información que ya tienes en un lugar (tabla) en otro (la otra tabla relacionada) va en contra de la filosofía de una base de datos relacional. Es lo mismo que si tienes una tabla de clientes (con todos los datos de cada uno) y en la tabla de ventas, en vez de poner el identificador del cliente vuelves a repetir todos los datos del cliente...

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas