VFP y WORD
estoy empezando a programar en FVP y necesito crear un programa en VFP que pida una palabra entonces debo buscar en varios archivos word(doc) esta palabra para luego seleccionar solo aquellos archivos con la palabra buscada. les agradecere sus comentarios
Con esta funcion realizo una combinacion de correspondencia y posteriormente la imprimo. Fijáte que una vez creado el objeto word.application podés ejecutar cualquier metodo que utilizarÃas en visual basic (en tu caso tenés que utilizar el que realiza la busqueda de un string en el documento). Como resulta obvio tenés que conocer algo de programacion en Visual Basic Application.
Al final vas a encontrar un ejemplo de codigo de VBA que realiza una busqueda dentro del documento activo.
parameter archivo,ruta
msword=createobject("word.application")
msword.visible=.f.
msword.documents().open(archivo)
msword.activedocument.mailmerge.opendatasource(ruta+'tmailing.dbf')
msword.ActiveDocument.MailMerge.destination=0
msword.ActiveDocument.MailMerge.mailasattachment=.f.
msword.ActiveDocument.MailMerge.mailaddressfieldname=""
msword.ActiveDocument.MailMerge.mailsubject=""
msword.ActiveDocument.MailMerge.suppressblanklines=.t.
msword.ActiveDocument.MailMerge.datasource.firstrecord=1
msword.ActiveDocument.MailMerge.datasource.lastrecord=-16
msword.ActiveDocument.MailMerge.execute(.f.)
msword.printout()
wait "Imprimiendo..." window at 15,40 timeout 5
msword.documents().close(.f.)
msword.quit(.f.)
**********************************************
Selection.Find.ClearFormatting
With Selection.Find
.Text = "texto a buscar"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Al final vas a encontrar un ejemplo de codigo de VBA que realiza una busqueda dentro del documento activo.
parameter archivo,ruta
msword=createobject("word.application")
msword.visible=.f.
msword.documents().open(archivo)
msword.activedocument.mailmerge.opendatasource(ruta+'tmailing.dbf')
msword.ActiveDocument.MailMerge.destination=0
msword.ActiveDocument.MailMerge.mailasattachment=.f.
msword.ActiveDocument.MailMerge.mailaddressfieldname=""
msword.ActiveDocument.MailMerge.mailsubject=""
msword.ActiveDocument.MailMerge.suppressblanklines=.t.
msword.ActiveDocument.MailMerge.datasource.firstrecord=1
msword.ActiveDocument.MailMerge.datasource.lastrecord=-16
msword.ActiveDocument.MailMerge.execute(.f.)
msword.printout()
wait "Imprimiendo..." window at 15,40 timeout 5
msword.documents().close(.f.)
msword.quit(.f.)
**********************************************
Selection.Find.ClearFormatting
With Selection.Find
.Text = "texto a buscar"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
