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 |