La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6702 - COMO CREAR INSTANCIA WORD PARA IMPRIMIR DESDE VBASIC
Autor:  Urbandisa Urbandisa
Como puedo crear uns instancia de word en visual basic y como luego se le pueden pasar unos datos de un recordset de ado para poderlos imprimir desde word?

Gracias.

  Respuesta:  victor
Tengo definida una plantilla de Word con el formato que quiero, con propiedades y bookmarks.
Luego recorro el recordset y le asigno los valores a las propiedades/bookmarks.

Espero que te sirva

On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err.Number = 429 Then
fIsWordRunning = False
Set objWord = CreateObject("Word.application")
Err.Clear
Else
fIsWordRunning = False
End If

On Error GoTo ExitFalseDocumento_Word_Generar

'Toma el path de las plantillas
strTemplatePath = strTemplatePath & "\" & strWordTemplate

Set objDocs = objWord.documents
objDocs.Add strTemplatePath

Set prps = objWord.ActiveDocument.customdocumentproperties
Set bkms = objWord.ActiveDocument.Bookmarks

'Rellena las propiedades
param.MoveFirst
objWord.ActiveDocument.Bookmarks("descripcion").Range.Text = Trim(param!Descripcion)
prps.Item("Contratista_nombre").Value = Trim(param!contratista_nombre)
prps.Item("CIF_contratista").Value = param!contratista_NIF
prps.Item("direccion_contratista").Value = Trim(param!contratista_direccion)
prps.Item("cp_contratista").Value = param!contratista_cp
prps.Item("poblacion_contratista").Value = Trim(param!contratista_poblacion)
prps.Item("provincia_contratista").Value = Trim(param!contratista_provincia)
prps.Item("contrato_desde").Value = Format(param!contrato_desde, "dd-mmmm-yyyy")
prps.Item("contrato_hasta").Value = Format(param!contrato_hasta, "dd-mmmm-yyyy")
prps.Item("plazo_ejecucion").Value = param!plazo_ejecucion
prps.Item("fec_adju").Value = param!fec_adjudicacion
prps.Item("fec_escritura").Value = param!fec_escritura

objWord.Selection.wholestory
objWord.Selection.Fields.Update

objWord.Visible = True