sábado, 24 de enero de 2015

Combinar correspondencia entre Word y Access y múltiples registros en la misma página

En otra ocasión ya he tratado el tema de “Combinar Correspondencia entre Access y Word” en un paso a paso anterior: Link. Ese caso es el tipo más común, pero hay más opciones de combinar y resultados que el típico de carta. Otras muy comunes son para preparar etiquetas o sobres, algo que puede que trate en otro artículo. Aunque básicamente siempre es lo mismo si usas el asistente.

Y el caso caso que voy a responder aquí y que me preguntaron muchas veces, pues es casi igual también. Pero en este caso es para responder una duda aparecida en la web: La Web del Programador:

CombinaWAM01

Normalmente hubiera respondido directamente en esa web… pero las limitaciones de respuesta implicaban que o le enviaba un PDF o algo como este artículo. Y haciéndolo así queda para otros que busquen esa misma respuesta y de paso me gano alguna visita.

Puntualizo que las capturas serán de Word 2007 y me conectare a un MDB (el formato antiguo de Access y donde están los datos realmente), pero es prácticamente lo mismo en Word 2010 y 2013, y también lo mismo si en lugar de un MDB es sobre un ACCDB (el nuevo formato de archivo de Access). Si la base de datos (en adelante BD) es un MDB es porque es una de ejemplo que tengo descargada en el equipo.

También hago notar que voy a hacerlo con el asistente, pero no es la única forma de hacerlo y realmente es la menos flexible, pero cubre el 99% de los casos. Y además con el asistente son solo 6 pasos.

1º Paso:

Abrimos Word y vamos al menú: Combinar correspondencia.

CWAM02

Y ahí hacemos clic en el botón: Iniciar combinación de correspondencia (1). Al hacerse se nos abre un nuevo menú, y tenemos que hacer clic en la última opción: Paso a paso por el Asistente para combinar correspondencia (2).

CWAM03

En ese momento se nos abrirá un panel a la derecha de la ventana de Word (normalmente ahí). Ese es el panel del asistente:

CWAM05

Bien ahí tenemos que cambiar de Cartas que es la opción predeterminada a Lista de direcciones que es la opción que nos interesa. Y ya podemos hacer clic en Siguiente: Inicie el documento.

CWAM06

2º Paso:

En este 2º paso se nos muestras varias opciones en cuanto al documento de Word en donde se llevará a cabo la combinación de correspondencia. Pero normalmente se quiere usar el documento actual, que es la opción por defecto. Con lo que es hacer click en Siguiente: seleccione los destinatarios.

CWAM07

3º Paso:

En este paso es donde conectaremos con la base de datos de Access que usaremos como fuente de datos. Lo primero que debemos asegurarnos de que la opción seleccionada sea: Utilizar una lista existente (1). Si no lo estuviese, seleccionar esa opción. Después hacemos clic en: Examinar (2).

CWAM08

Nos saldrá la siguiente ventana, en donde tendremos que buscar y seleccionar la fuente de datos, como en nuestro caso es una base de datos de Access, pues o será MDB o ACCDB y para ello en donde ponte: Todos los origines de datos… (1), hay que pulsar y elegir la opción Bases de datos de Access (*.mdb,*.mde) o la opción Bases de datos de Microsoft Office Access 2007 (*.accdb.*accde) (2). En mi caso, como es un MDB elegí la primera, pero muy probablemente sea la segunda la que tengáis que escoger la mayoría. Después hay que buscar la base de datos y darle a Abrir. En ese momento os saldrá una nueva ventana, en donde podréis escoger entre las consultas y tablas presentes en esa base de datos. Elegir en la que estén los datos que usareis para la combinar correspondencia.

CombinaWAM08CombinaWAM09CombinaWAM10CombinaWAM11CombinaWAM12CombinaWAM13

Una vez realizado lo anterior, pues os saldrá esta nueva ventana. Esta ventana es muy importante aunque en muchas ocasiones pulsareis directamente en clic, pero quiero pararme en comentar que en ella se puede realizar un filtrado de datos (si no os interesan todos los datos, solo una parte de ellos), además ordenar los datos, buscar duplicados… En mi caso, para este ejemplo no cambiaré nada y daré directamente clic en Aceptar. Y después ya se vuelve a Word y podemos continuar al siguiente paso, para ello damos clic en: Siguiente: escriba la carta.

CWAM09CWAM10

4º Paso:

En este paso vamos a diseñar como se verá cada uno de los registros, que campos de datos se visualizarán, etc. Para poder acceder a los campos de datos, pues hay que pulsar en: Más elementos… (1) y ahí nos saldrá una nueva ventana con la lista de campos que podremos usar, entre otras opciones. Normalmente elegiremos los campos que nos interesan en el orden que nos interesa y con el campo seleccionado damos a Inserta, y volvemos a elegir otro comapo e insertar… aunque podemos acceder a esta ventana tantas veces como queramos, no es necesario ponerlos todos de golpe.

CWAM12CWAM13

En este caso yo agrego unos cuantos campos y después personalizo el archivo de Word, pero se podría ir haciendo en orden, incluso insertar los campos al final, etc… Ya que es en este paso en donde damos el formato que queremos que tenga el documento final. Aunque para probar la primera vez podéis dejar solo los campos insertados y tal…  Y después clic en: Siguiente: Vista previa de las cartas.

CWAM14

CWAM22

5º Paso:

En este paso, si todo ha ido bien, pues ya tenemos una vista previa de datos (hago notar que aquí solo se verá de dato en dato, todos juntos en el siguiente paso), podemos movernos entre ellos, incluso en Editar lista de destinatarios podríamos aun decidir que mostrar y que no. Y ya podemos ir al paso 6 haciendo clic en: Siguiente: Complete la combinación.

CWAM16

6º Paso:

Si todo ha ido bien hasta aquí, pues en este paso solo tendremos que hacer clic en: En nuevo documento. Ya que el resultado final se genera realmente en un nuevo documento, el actual queda como una plantilla por si quieres generarlo de nuevo en el futuro (puede que con datos distintos). Después de dar, saldrá una nueva ventana en donde podremos decidir que registros mostrar, si Todos, solo Registro actual o los de un rango.

CWAM20

CWAM18

Resultado Final:

Aquí tenemos el resultado final.

CWAM21

Para terminar solo comentar que se pueden elaborar diseños realmente complejos y que esto siga funcionando. Una vez que se sabe lo básico es cuestión de experimentar. También comentar que si tienes problemas en uno de los pasos, siempre puedes volver atrás en los pasos y volver a rehacer.

Si tenéis cualquier duda, no dudéis en dejarme una pregunta en un comentario… que puede que tarde un par de días, pero si está en mi mano, os la responderé gustoso.

6 comentarios:

  1. Muchas gracias por el tutorial. Claro, conciso y directo al grano. ¡Me ha salvado la vida hoy!

    Saludos,

    Ana.

    ResponderEliminar
  2. Gracias a ti Ana. Me alegra que sea últil.

    ResponderEliminar
  3. Porque a mi me sale una pàgina nueva para cada nombre y dni, y a ti te sale todo en la misma página uno debajo de otro???

    ResponderEliminar
  4. Hola, pues puede ser por varios motivos, pero revisa el paso 1, tienes que elegir "lista de direcciones" y no "carta" (opción predeterminada). Aunque también si quieres algo tipo etiqueta, pues puedes usar esa opción. Y recuerda que hasta después de dar en Combinar "en documento nuevo" no lo tienes todo junto... hasta ahí defines la plantilla.

    hasta luego

    ResponderEliminar
    Respuestas
    1. Hola Manuel y compañía.
      Necesito hacer una combinación de correspondencia, pero con campos que tienen múltiples registros, pudiendo tener un destinatario varios datos asociados en un mismo campo. Ejemplo: carta a clientes donde se indica número de facturas anuales. Habrá clientes con una factura y los habrá con más de una o ninguna. En ningún caso quiero enviar 3 cartas a u cliente que tiene 3 facturas.
      Muy agradecido
      Nacho

      Eliminar
    2. Hola Nacho, siento decirte que lo que quieres es más complicado de lo que debería y realmente directamente Word no tiene soporte para hacerlo (al menos hasta la versión 2013).
      Por lo que te entiendo, lo que quieres es que en una carta modelo aparezca un dato de una combinación uno muchos, de la parte uno (por ejemplo el nombre del cliente) y después 1 o más (dependiendo de cuantos haya) de la parte muchos... por ejemplo el comentado tu: las facturas que tiene pendientes del año.
      Lo anterior, pues hay forma de hacerlo vías VBA y usando trucos. Pero lo usual en ese caso sería recurrir a un informe de Access en donde el propio informe es la carta. Realmente es muy fácil jugando con los encabezasos y pies de cada sección.

      El punto débil de esa opción es que los informes de Access son algo básicos en cuanto a la hora de formatear texto y lleva algo más de trabajo que en Word que quede perfecto. Pero el resultado no lo distinguirán. A ver si puedo en los próximos días y te hago un ejemplo de lo que pides.

      gracias por leerme.

      Eliminar