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