>lcDocument = Getfile('DOC') >Set Textmerge To Memvar myVar Noshow >Set Textmerge On >\DEFINE CLASS oleWordObject as OLEControl >\ OleClass ="Word.document" && Server name >\ OleTypeAllowed = 0 && Linked >\ DocumentFile = "<<lcDocument>>" && This file should exist >\ENDDEFINE >Set Textmerge To >Set Textmerge Off >lcTempClass = Sys(2015)+'.prg' >Strtofile(myVar, lcTempClass) >Compile (lcTempClass) > >oform = Createobject("myForm") >With oform > .Height = 420 > .Width = 620 > .Newobject("WordObject","oleWordObject",lcTempClass) && Add OLE object > With .WordObject > .Left = 5 > .Top = 5 > .Width = .Parent.Width - 10 > .Height = .Parent.Height - 10 > .Visible = .T. > Endwith >Endwith >oform.Show >Read Events >Clear Class 'oleWordObject' >Erase (Juststem(lcTempClass)+'.*') > >Define Class myForm As Form > Procedure QueryUnload > Clear Events > EndProc >Enddefine >However I have real doubts about this one or one using OleBoundControl instead it would be good to work with. Working with object model in this fashion has always been frustrating to me.