Quiero crear una hoja de presupuesto para imprimir, a raíz de unos datos de una tabla de access

Resumiendo bastante es lo que pone en el título.
Lo que tengo en este momento es un formulario en el cual inserto los artículos con su precio, su IVA y todo lo relacionado, me genera también el importe total y guardo esos datos en una tabla.
Lo que quiero es.. Tener un botón, que al pulsarlo me recoja de dicha tabla todos los datos necesarios, y los muestre en una plantilla de presupuesto o factura que pueda imprimir.
No se que debería de hacer, ¿se puede llamar por vba a una plantilla de word e ingresarle los datos de dicha tabla? Y si no se puede, ¿sabéis alguna manera de hacer lo que necesito?

Muchas gracias :D

1 respuesta

Respuesta
1

Lo que pides (usar VBA para crear el word a través de la plantilla) sí es posible, pero te llevará un rato. Te comento distintas opciones de cómo podrías resolverlo, de menor a mayor dificultad.

La opción fácil es crear un informe con el mismo (o similar) diseño de la plantilla de tu presupuesto, y hacerlo sobre la tabla, para que te muestre ya en ese informe los datos que tienes almacenados en la tabla.

Con word se me ocurren dos formas:

Puedes probar, en primer lugar, a usar la "combinación de correspondencia", con lo que se te generaría un archivo word con los registros que selecciones de tu tabla. El propio word tiene un asistente con el que realizar el proceso.

La segunda opción con el word (la que da trabajo pero es más personalizable), sería hacer lo que explica Neckkito en este ejemplo:

 http://siliconproject.com.ar/neckkito/index.php/component/content/article/97-ejemplos-explicados/ejemplos-especiales/149-cartas-de-word-en-access 

Saludos!


Visítanos: http://nksvaccessolutions.com/ 

Muchas gracias, le voy a echar un ojo al enlace que me has enviado que parece interesante para lo que necesito :)

Si entiendes la forma de hacerlo, te servirá al 100%.

Si que lo entiendo, e intento aplicarlo, pero me ha surgido un problema, me he bajado la aplicación de muestra que hay en el enlace que me has enviado, para ver la funcionalidad y hacer los cambios pertinentes en mi aplicación, pero al ejecutarlo me salta un error en tiempo de ejecución '5981'.
He leido para intentar informarme de la causa del error y es por los permisos de usuario de WORD,
¿sabes algo al respecto? un saludo y un placer .

Creo que ya sé dónde está el problema:

Al descargar los archivos de internet, por defecto te los bloquea para edición (puedes comprobarlo si abres la plantilla, que te saldrá un aviso en amarillo en la parte superior)

Si abres la plantilla y le dices que permita editar (imagino que si metes los archivos en una ubicación de confianza también funcionará), ya no te dará ese problema (al menos en mi caso, pues bajé el ejemplo de nuevo en otro ordenador y me daba el mismo error que a tí, y así se solucionó..)

Saludos!


Visítanos: http://nksvaccessolutions.com/ 

Es extraño por que eso lo he hecho antes de comentar.. "Habilitar edición". En todos las plantillas.
He visto el error.. es que la aplicación llama a la plantilla .dot que es de una versión anterior a 2007, y yo utilizo el 2010, y no la ejecuta,  he probado a cambiarlo a la plantilla .doc.
Pero ahora no encuentra las variables.. estoy mirando a ver si doy con la tecla.. 

Los archivos de plantillas, para versiones anteriores a 2007 tienen formato .dot, y los documentos .doc. Desde la versión 2007, las extensiones son .dotx y .docx, pero las versiones anteriores siguen siendo compatibles al 100%.

En mi caso, con Word 2013 el ejemplo me funciona a la perfección (una vez abierta la plantilla previamente y habilitarle la edición).

Si le cambias la extensión a .doc, además de dejar de tener un archivo de plantilla de word, es probable que no te funcione correctamente (es el peligro de cambiar las extensiones "a las bravas").

Mi consejo es que te bajes de nuevo el ejemplo, pruebes de nuevo lo de habilitar la edición (en los tres archivos de la carpeta plantillas, porque no recuerdo exactamente cual es el que usa), y si te sigue dando error, crea una ubicación de confianza para la carpeta en donde tienes los archivos y prueba de nuevo. No se me ocurre nada más que puedas probar...

¡Gracias! Muchas gracias.... ,  el problema real era que cuando el código abre la plantilla de Word, en vez de abrirlo como si fuera una plantilla, me lo habría como documento nuevo... por eso no encontraba las variables, por que no existían.
Debió de haberse corrompido la plantilla a la que llamaba, ya que me he creado una plantilla nueva y llamandola a ella desde el mismo código y a funcionar.
Y de veras que muchas gracias ya que modificando estas líneas a mi código puede servirme perfectamente. :)

¡Gracias!  Muchas gracias.. El problema real era que cuando el código llamaba a la plantilla de Word, en lugar de abrir la plantilla me abría un documento nuevo, por lo que siempre me enviaba un error en tiempo de ejecución al no encontrar la variables ya que no existían.
La plantilla debió quedar corrupta por que simplemente he creado mi propia plantilla y llamando a esa nueva plantilla desde el mismo código que daba el error se ha puesto a funcionar..
Gracias de veras, adaptando este código a mi aplicación puedo hacer exactamente lo que necesito... Gracias..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas