Resumen Combinar correspondencia   (3 mensajes )

    Mensaje previo escrito por moreta@redestb.es el día 23 Sep 97.

¡Hola, moreta@redestb.es!

 m> necesito ayuda sobre cómo combinar correspondencia en Word'97
 m> usando VB, ejemplos!!!

    Esta rutina te abre un documento Word y hace que sea un documento
principal de combinación de correspondecia:

> ---------8<---------8<--------- CORTAR ---------8<---------8<---------

  Dim sSQL As String
  Dim objWord As Object 'Objeto Word para Automatizacion OLE
  Dim sFile As String 'Nombre del fichero

  sFile = "C:\MIDOC.DOC"
  sSQL = "SELECT * FROM Clientes WHERE Ciudad = 'Vigo'"
  Set objWord = CreateObject(OBJETO_WORD)
  objWord.ArchivoAbrir sFile 'Abre el documento
  '
  'Establece que el documento sea documento de combinacion principal para
  'cartas modelo.
  'Formato de la instruccion: Valores pasados:
  ' CombinarTipoDocPrincipal
  ' Tipo 0 (carta modelo)
  '
  objWord.CombinarTipoDocPrincipal 0
  '
  'Asocia la fuente de datos especificada por la clausula SQL al documento,
  'que se convierte en un documento principal.
  'Formato de la instruccion: Valores pasados:
  ' CombinarAbrirFuenteDatos
  ' .Nombre = texto gsDBFile (nombre de la fuente de
  ' datos)
  ' [, .ConfirmarConversiones = numero]
  ' [, .SoloLectura = numero]
  ' [, .VincularAFuente = numero] 1 (la consulta SQL se realiza cada
  ' vez que se abre el documento)
  ' [, .AgregarAAUR = numero] 1 (se agrega el fichero a ultimos
  ' docs usados)
  ' [, .ContrasenaDoc = texto]
  ' [, .ContrasenaDot = texto]
  ' [, .Revertir = numero] 0 (trabaja con el documento ya
  ' abierto)
  ' [, .EscribirContrasenaDoc = texto]
  ' [, .EscribirContrasenaDot = texto]
  ' [, .Conexion = texto]
  ' [, .SQLInstrucciones = texto] sSQL (instruccion SQL para el acceso
  ' a los datos)
  objWord.CombinarAbrirFuenteDatos gsDBFile, , , 1, 1, , , 0, , , , sSQL
  objWord.ArchivoGuardar 'Guarda el documento
  objWord.ArchivoCerrar 'Cierra el documento
  Set objWord = Nothing

> ---------8<---------8<--------- CORTAR ---------8<---------8<---------


Saludos.............. GLL

Origin: PGP Disponible. InterNet (llander@pobox.com)_FidoNet_(2:348/613.26)

    Mensaje previo escrito por Fernando Encinas el día 30 Oct 97.

¡Hola, Fernando!

 FE> Quiero pedirles ayuda sobre un problema de conexion entre una base de
 FE> datos Access 95 y un documento de Word.

    Yo lo uso con Access 2.0 y Word 6.0

 FE> Deseo hacer una operacion de combinacion de correspondencia. Consegui

 FE> .MailMergeOpenDataSource Name:= wSystem.Bin & "\sicop.mdb",
 FE> Connection:="DSN=MS Access 7.0 Database;DBQ=" & wSystem.Bin & _
 FE> "\sicop.mdb;DriverId=25;FIL=MS Access;UID=Admin" ',
 FE> SQLstatement:="Select * from Cartas"

    Mmmmm, no sé, esa opción creo que no la tiene el Word 6.0. Yo hago
lo siguiente:

  Set objWord = CreateObject("Word.Basic")
  objWord.ArchivoAbrir sFileEntrada 'Abre el documento principal
  objWord.CombinarOpcionesConsulta sSQL 'Establece condiciones de la consulta
  '
  'Genera el informe de Combinacion de Correspondecia
  'Formato de la instruccion:
  ' CombinarCorrespondencia
  ' [.VerificarErrores = número] 1 (si hay errores, realiza la
  ' combinacion e informa cuando se
  ' encuentra un error)
  ' [, .Destino = número] 0 (realiza la combinacion sobre un
  ' documento nuevo)
  ' [, .CombinarRegistros = número] 0 (combina todos los registros)
  ' [, .Desde = número]
  ' [, .Hasta = número]
  ' [, .Suprimir = número] 1 (imprime las lineas de combinacion
  ' en blanco)
  ' [, .CombinarCorrespondencia] 1 (realiza la combinacion de
  ' correspondencia)
  ' [, .AsuntoDelMensaje = texto]
  ' [, .EnviarComoAdjunto = número]
  ' [, .DirecciónDeCorreo = texto]
  '
  objWord.CombinarCorrespondencia 1, 0, 0, , , 1, 1
  objWord.ArchivoGuardarComo sFileSalida 'Guarda el documento con el Mailing
  objWord.ArchivoCerrar 'Cierra el documento con el Mailing
  objWord.ArchivoGuardar 'Guarda el documento Principal
  objWord.ArchivoCerrar 'Cierra el documento Principal
  Set objWord = Nothing

 FE> Alguien sabe como hacer la conexion. Es en lo que me ya me tiene
 FE> hasta el gorro.

  Te comprendo, a mi también me quemó mucho el tema. A ver si esa rutina
te sirve de pista para solucionarlo. ;)

Saludos.............. GLL

Origin: PGP Disponible. InterNet (llander@pobox.com)_FidoNet_(2:348/613.26)

Fernando:

Aqui te envio un ejemplo probado, de como funciona esto del DDE con word 97. Para ejecutarlo deberas incluir la referencia de libreriras de Word.
Esto lo hace seleccionando Proyecto, Referencias y Activando la que dice Microsoft Word 8 Object Library y luego colocas el codigo para probarlo.

Espero te sirva de ayuda.


Marcelo J. Acevedo
La Industrial Alimenticia S.A.
Cordoba - Argentina

************** Ejemplo *************
Private Sub Command1_Click()
Dim obj As Object

Set obj = CreateObject("word.application") ' se crea el objeto word

obj.Documents.Add 'agrego un nuevo documento

With obj.ActiveDocument
    .MailMerge.MainDocumentType = 0 'indico que voy a hacer una carta
    .MailMerge.OpenDataSource "H:\DOC9000\doc9000.mdb", 0, False, False, False, False, "", "", False, "", "", "DBQ=H:\DOC9000\doc9000.mdb;DriverId=25;FIL=MS Access;UID=admin", "SELECT * FROM `Documentos`", "" 'abro la base de datos
    .MailMerge.EditMainDocument 'activo el documento principal
End With
obj.ActiveDocument.MailMerge.Fields.Add Selection.Range, "Código_del_Doc" 'agrego un campo de esa base
obj.Selection.TypeParagraph ' agrego un enter
obj.Selection.TypeParagraph ' agrego un enter
obj.ActiveDocument.MailMerge.Fields.Add Selection.Range, "Título_del_Doc" ' agrego otro campo de esa base
End Sub





Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com