Combinar Word con tabla SQL

Nota Vista 17.149 Veces

Combinar correspondencia utilizando WORD(2003) con una tabla SQL.

Una de las tareas que a veces suelen pedir es la de armar una carta personalizada y hoy por hoy los datos de estas personas suelen estar en un archivo de base de datos (como ser SQL por ejemplo) y que son actualizados por otro sector.

Pues bien, los datos de los clientes normalmente los actualiza la gente de ventas pero a las secretarias les piden cartas personalizadas y allí es donde somos consultados los informáticos……

El paquete office ofrece un procesador de textos, así como Excel es una poderosa herramienta, el WORD lo es para el manejo de archivos de textos.

La idea de la nota es comentar los pasos utilizados para que a partir de una tabla SQL(clientes) podamos hacer una carta e insertar alguno de sus datos(la razón social por ejemplo) a una lista de clientes de la organización.

Para comenzar abrimos el WORD(2003) y elegimos 

HERRAMIENTAS -> CARTAS Y CORRESPONDENCIA -> COMBINAR CORRESPONDENCIA

hacia la derecha tendremos una serie de 6 pasos a completar  y el primero es la consulta del tipo de documento, siendo CARTA la opción para este ejemplo(pero vemos que podemos hacer etiquetas incluso). Siempre sobre el costado derecho de nuestra pantalla, pero hacia abajo, está la opción de pasar al segundo paso donde nos pide ELEGIR UN DOCUMENTO O UTILIZAR EL ACTUAL(si tenemos la nota redactada debemos elegirla en este momento).

El tercer paso es SELECCIONAR LOS DESTINATARIOS y aquí veremos que podemos elegir UTILIZAR LISTA EXISTENTE y con la opción EXAMINAR  tendremos orígenes de datos disponibles, pudiendo optar por varias alternativas(SQL-DSN-ORACLE,etc), pero para nuestro ejemplo elegimos NUEVA CONEXIÓN CON SQL SERVER , según vemos en la imagen siguiente

Armamos la conexión con el servidor SQL(colocando usuario y contraseñas), nos pide indiquemos la base de datos que deseamos usar y nos mostrará la lista de tablas que dicha base posee como lo muestra la imagen siguiente, seleccionando la tabla deseada.

Luego de esto nos pide que pongamos un nombre al vinculo que creamos y le damos FINALIZAR; un par de veces  nos vuelve a pedir que indiquemos usuario y contraseña de la base de datos y finalmente nos aparece la lista de campos que posee la tabla que hemos elegido. En este momento podemos filtrar, seleccionar  u ordenar campos, según nos muestra la figura que vemos a continuaciòn

El paso siguiente elegir el BLOQUE DE DIRECCIONES y picar sobre el botón ASIGNAR CAMPOS, como podemos observar en las imágenes que están debajo, siendo este paso muy importante dado que podremos asignar los datos de la tabla al bloque de direcciones que se imprimirán en la carta.

 

Ultima figura

Los últimos dos pasos son simplemente visualizar lo realizado y aceptar o modificar en caso de algún dato erróneo… Existe siempre la alternativa de poder retroceder pasos y modificar en caso de errores, pero resultó interesante poder combinar WORD en su versión 2003, con los datos de una tabla SQL que tenía los clientes de la empresa, espero sea de utilidad….

Marcelo Luques Marcelo Luques (13 Posts)



25 Responses

  1. david dice:

    Como se seria combinar una base excel y word 2007 en adelante
    Lo que quiero es mantener el formato de los numeros en excel (que nos se pierda al pasar a word)

    gracias

    • Marcelo Luques Marcelo Luques dice:

      Hola, gracias por tu interès. Para el caso que planteas, podès insertar la tabla EXCEL como un objeto(INSERTAR->OBJETO->CREAR DESDE ARCHIVO) allì te permite que vincules una tabla excel a una planilla WORD. Podès indicar que sea insertarda como un ìcono o que quede vinculada; lo cual permite que al modificarse la planilla se actualicen los datos del archivo WORD. Espero haber respondido tu inquietud. Cordialmente, marcelo.

  2. odavilap@yahoo.com dice:

    Hola, tengo una base de datos con varios registros por cada uno de mis clientes, por ejemplo el nombre de tres personas que los pueden atender, y por cada cliente hay tres personas distintas que los pueden atender, cómo puedo hacer una combinación para enviarle una carta y que aparezcan las tres personas que lo pueden atender y que se encuentran en mi base de datos…muchas gracias por tu respuesta

    • Marcelo Luques Marcelo Luques dice:

      Hola, gracias por el interès antes que nada. En principio se podrìa armar una tabla auxiliar donde consignes el cliente, los representantes que lo pueden atender y algùn otro dato que sea relevante. A partir de esta auxiliar armada, podrìas imprimir las notas. Espero haber respondido tu inquietud. Nuevamente gracias.

  3. sergio garcia dice:

    Hola,

    Un tutorial muy práctico.

    Pero para poder conectarme al servidor desde mi ordenador, ¿cómo tengo que copnfigurar el servidor con Windows Server 2003?

    Gracias por la respuesta,

    Saludos,

    • Marcelo Luques Marcelo Luques dice:

      Hola Sergio, gracias por tu consulta. Para poder acceder al servidor SQL, una de las alternativas que se puede tener, es armar un conector ODBC (desde la opción de orígenes de datos en herramientas administrativas) el cual hace referencia al servidor propiamente dicho, sea por su ip o por su nombre, todo esto dentro de una misma red por supuesto ya que tenés que tener permiso de acceso a dicho servidor sql.

  4. Camilo Romero dice:

    Buenos días Marcelo, tengo una inquietud, necesito automatizar un proceso de elaboración de cartas, para ello obtengo información de dos consultas SQL, pero cuando elijo el origen de datos necesito seleccionar 6 tablas, no una en particular, para obtener los datos que introduciré en la carta, tengo la idea de realizar una macro que haga todo esto, qué me aconsejas? Cómo puedo elegir más de una tabla y no toda la base de datos? Gracias!

    • Marcelo Luques Marcelo Luques dice:

      Hola Camilo, gracias por tu contacto. Particularmente si fuera yo quien tiene que resolver el problema trataría de hacer todos los procesos necesarios y quedarme solamente con una tabla y esta seleccionarla desde el Word. Es decir, si hay una preselección de datos, los haría y dejaría todo lo necesario en una sola tabla. Luego si, conectaría con la base de datos y allí con la tabla en la cual tengo los datos que han sido seleccionados para la carta. Espero haber sido útil en la resolución de tu problema, cualquier inquietud, estoy a tus órdenes. Cordialmente Marcelo.

  5. Pamela Saavedra dice:

    Estimado:
    Trabajo en una empresa que realiza memorias de cálculo estructural, razón por la cual he vincula los word a los excel respectivos, pudiendo actualizar automaticamente mi word cuando modifico el excel. Bueno el problema está en que la ruta de origen debe mantenerse invariable….. ¿Existe alguna forma de que la ruta de vinculación se actualice automaticamente al mover mis archivos de lugar en el pc? o ¿existe alguna forma en que yo pueda ingresar tablas o imagenes desde excel a un word que ya está redactado a traves de alguna macro?…. Pregunto ademñas porque en mi pc no hay problemas porque mantengo siempre mi ruta de origen… no muevo los archivos… pero el problema está en que debo entregarselos a todos los ingenieros de la empresa, por lo que los vinculos se pierden…. eso…espero puedas ayudarme

    • Marcelo Luques Marcelo Luques dice:

      Hola Pamela, gracias por tu consulta. Puedo presuponer que no tenés muchas alternativas lamentablemente, dado que aunque no modifiques en tu pc, cuando lo llevan hacia otra computadora, los links cambian…..Solo se me ocurre que puedas trabajar todo sobre un servidor, y tanto vos como las demás personas, accedan a ese “servidor” tanto para consultar como para realizar los cambios. Otra alternativa que supuse, (pero obliga a que cada persona que utilice el archivo haga cambios) es tener una planilla que indique la ubicación de la planilla y utilices los datos contenidos en esa planilla, para armar una variable que indique la ubicación del archivo…..Ejemplo: la hoja 1, en la celda A1 contendría //nombre de máquina(o direccion IP)/carpeta, pero como dije antes, esto obliga que cada persona que tenga el archivo deba modificar esta ubicación para poder accederlo. Particularmente, me inclino a la primer alternativa de tener un servidor en común, donde todos trabajen sobre el mismo.
      Espero haber sido de utilidad, quedo a tu disposición para aquello que consideres.
      Cordialmente.

  6. Aida Macias dice:

    hola… tengo un problema , tengo mi documento de word es un oficio y necesito realizar la combinacion con un doc excel pero el word no me permite realizar paso por paso el asistente no tiene habilitada esa opcion que puedo hacer para habilitarla y poder realizar la correspondencia, me urge mucho porfa….

    • Marcelo Luques Marcelo Luques dice:

      Hola Aida, si ya has realizado la tarea de combinar correspondencia con anterioridad y ahora no te figura habilitada estoy suponiendo que el WORD se pudo haber dañado y quizás haga falta reinstalarlo…Que versión de WORD estás utilizando? Intenta llevar los archivos en otra máquina para ver si ocurre el mismo inconveniente y descartar un problema en el paquete office……Un cordial saludo.

  7. Antonio Hernandez dice:

    Buen día Disculpa solo tengo una pregunta necesito saber como pueda agregar una imagen que viene de unas tablas de sql o bien la imagen las tengo en una carpeta compartida esto lo necesito para un catalogo de productos pero necesito ya sea me despliegue un listado de modelos o que al buscar un modelo en especial me vincule su imagen, espero ser claro y por supuesto me puedan ayudar.

    de Antemano se los agrdesco.

    saludos cordiales.

    • Marcelo Luques Marcelo Luques dice:

      Hola Antonio, gracias por tu consulta. En referencia a la misma, quizás podrías colocar un link al lugar o carpeta donde esta alojada la imagen, dentro del archivo WORD, tipo Hipervínculo y al hacer click con el mouse se abre ese vínculo.
      Espero haber entendido bien tu consulta y te pueda resultar útil la respuesta.
      un cordial saludo nuevamente.
      Atte.

      • Juan dice:

        Hola Marcelo, sobre este tema, lo que se requeire es leer la imagen de la bd y mostrarla en el documento, por decir una firma.
        Mil Gracias

        • Marcelo Luques Marcelo Luques dice:

          Sql tiene la posibilidad de definir un campo como IMAGE; quizàs esto pueda resolver el problema, si definìs en la tabla SQL que utilizaràs con el archivo WORD, un campo como image y al realizar el inster seleccionas ese campo. En mi caso, no he realizado este tipo de prueba. Espero te pueda ser ùtil la informaciòn para que resuelvas el trabajo. Un cordial saludo, Marcelo.

          • Juan dice:

            Hola Marcelo
            lo probe con ese tipo de campo, pero no sale,tambien lo probe con varbinary, tampoco sale. seguire buscando.
            Muchas Gracias

  8. Andy C. dice:

    Hola Marcelo tengo un problema al combinar un listado de nombres desde excel a word. Son 1200 nombres y cargos que se deben imprimir como etiquetas en word, al combinar el listado solo aparecen 800, los demas no pasan. No se que pueda ocurrir. Gracias por tu ayuda.

    • Marcelo Luques Marcelo Luques dice:

      Hola Andy, gracias por tu consulta. En referencia al tema, te pregunto: la fila 801 de la hoja excel ya no se combina con el word? es decir es asì de exacto, la fila 801 siempre que lo intentaste no fue combinada? Que versiòn de office estàs utlizando(2003 -2007)? En caso que desees salir del problema en forma momentánea te propongo que armes dos planillas excel, del 1 al 800 por un lado y del 801 al 1200 en otra para poder asì realizar el trabajo…..Espero haberte sido ùtil un cordial saludo. Marcelo

  9. denis dice:

    Hola quiero hacer una combinacion de correspondencia pero automatizado desde visual basic.Lo que tengo es una plantilla en word que es un contrato y quiero pasar los datos de mi aplicacion en visual 6 a esa plantilla y imprimilar. Espero que me puedas ayudar.Gracias

    • Marcelo Luques Marcelo Luques dice:

      Hola Denis, gracias por tu consulta antes que nada. No he realizado nunca el tipo de tarea que me estàs comentando, pero si estimo que te ahorraràs mucho tiempo si desde tu aplicaciòn VB6, generàs una tabla SQL y realizàs la combinaciòn…..Un cordial saludo y gracias nuevamente.Marcelo

  10. Adriana Plazas dice:

    Hola Marcelo, buen dato, pero necesito hacerlo en via contraria a partir de word, quisiera que el usuario seleccione y marque para ser enviado a SQLo has trabajado?

    • Marcelo Luques Marcelo Luques dice:

      Hola Adriana, gracias por el interés en la nota. No se si es posible desde Word a SQL, yo nunca al menos lo he hecho. Si se me ocurre que puede resultar factible de hacer desde un Excel embebiendo còdigo Visual Basic, por medio de una macro o un botòn de acciòn…..Nuevamente gracias, espero haberte sido útil. Cordialmente, Marcelo

  11. Gaby dice:

    Hola, puedo combinar los campos de dos tablas SQL para usar la informacion en una hoja de word, por ejemplo, necesito la tabla de datos generales de personas y la tabla de los productos. Gracias.

    • Marcelo Luques Marcelo Luques dice:

      Hola, gracias por la consulta antes que nada. En referencia a la consulta, estimo que si, dado que se puede ir seleccionando tablas, pero eventualmente, existe la posibilidad de armar una tabla auxiliar con los datos que te sea ùtiles y elegir directamente esa tabla. Esto ùltimo puede ser ùtil para evitar que word deba ser quien tenga que hacer el trabajo de selecciòn entre ambas tablas. Espero haberte sido ùtil con la respuesta. Nuevamente gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps