SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: pacegar en Lunes 26 de Enero de 2004, 14:39

Título: Combinar Con Word Desde Visual
Publicado por: pacegar en Lunes 26 de Enero de 2004, 14:39
Hola a todos!
Necesito poder combinar una tabla desde mi aplicacion con una carta de word.
Alguien sabe como hacerlo?
Gracias
Título: Re: Combinar Con Word Desde Visual
Publicado por: Brroz en Lunes 26 de Enero de 2004, 16:01
Hola pacegar.

Empieza por añadir al proyecto la correspondiente referencia a Word (también podrías utilizar CreateObject / GetObject)... luego examinador de objetos y a investigar.

Básicamente supongo que se tratará de obtener una referencia a un objeto Document, utilizar el método Add de su miembro Tables para añadir una nueva tabla y a partir de ahí, rellenar los datos de la tabla, supongo que mediante un objeto de tipo Range, esto último nunca lo he probado, pero imagino que por ahí van los tiros.

Suerte.
Título: Re: Combinar Con Word Desde Visual
Publicado por: pacegar en Miércoles 28 de Enero de 2004, 18:14
Por si a alguien le interesa

Código: Text
  1.  
  2.  
  3. 'Abrir documento existente con la plantilla ya creada, o sea con los campos insertados
  4. Documents.Open "c:\prueba.doc", , , , , , , , , , , True
  5.  
  6. ' Así nos aseguramos de que el documento apunte a la base de datos (RUTAMDB)
  7. ActiveDocument.MailMerge.OpenDataSource Name:=RUTAMDB, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=”+RUTAMDB+”Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Pass", SQLStatement:="SELECT * FROM `Tabla1`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
  8.  
  9. ' Actualizamos (creo que no hace falta)
  10. ActiveDocument.Fields.Update
  11.  
  12.  
  13.  

De todas formas, un truco que he descubierto:
  Cuando quieran hacer algo en office desde Visual basic con código y no sepan... desde la aplicacion de office poner grabar una macro y en esta se quedarán registradas todas las acciones (con codigo). Sólo basta verlas en el editor que de VBA.