需要大家帮忙呀,要建立企业级的应用解决方案,向vb、word、excel之间建立通讯是很必要的。我想用自动化服务,但不会运用。大家进来讨论讨论呀

解决方案 »

  1.   

    ltltlt:
     邮件合并它主要提供一个什么样的功能。它的合并是体现哪些东西的合并,能给详细说说吗?也就是在什么样的情况下,要用邮件合并呢。
      

  2.   

    我昨天翻了一下以前的帖子。有关控制word,excel的帖子一大堆,但大都是vb,dephi的。关于vfp怎样控制其它应用程序的讨论很少。vfp的兄弟们,快进来帮帮忙。
      

  3.   

    当你需要一条记录打印在一张打印纸上,并需连续输出,你可以考虑使用它,虽然REPORT也能实现,但没它来的灵活,快捷当需要给客户发通用信函的时候,我才会用!
      

  4.   

    你的意思就是说,它就是像标签一样的对吗。那能不能用程序控制,比如我设置好了邮件合并的功能,怎么来调用它。也就是说怎么像控制报表一样,将记录通过邮件的合并输出到word中。
    非常感谢。
      

  5.   

    没用过。试了,在word中总是一条记录一页,没有办法弄到一起。有会的请说说。
      

  6.   

    这个内容比较多,也不是太好说。
    总之你可以先将主文档建好(相当于报表设计),在程序中生成一个DBF文件。用代码指定邮件合并的数据源是这个DBF文件,执行邮件合并就可以了。
    主文档中的域对应DBF中的字段名。下面是我试了一下的结果:
    主文档:Hello!«姓名»:
    Your address is «地址»,is it correct?Yours,iceviDBF文件内容:
    姓名 地址
    wang beijing
    zhang shanghai
    liu wuhan执行邮件合并后为:
    Hello!wang:
    Your address is beijing,is it correct?Yours,icevi
    《分页符》 Hello!zhang:
    Your address is shanghai,is it correct?Yours,icevi
    《分页符》 Hello!liu:
    Your address is wuhan,is it correct?Yours,icevi
    《分页符》
     
    对应的代码你可以参考以下语句:若不熟悉语法,用WORD中的录制宏可以很快看到你的操作对应的代码。
    ActiveDocument.MailMerge.OpenDataSource Name:="D:\Book1.dbf", _
            ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
            Format:=wdOpenFormatAuto, Connection:= _
            "DSN=dBASE Files;DBQ=D:\;DefaultDir=D:\;DriverId=533;MaxBufferSize=2048;PageTimeout=5;" _
            , SQLStatement:="SELECT * FROM Book1.dbf", SQLStatement1:=""
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .MailAsAttachment = False
            .MailAddressFieldName = ""
            .MailSubject = ""
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=True
        End With若你在VFP中调用,用OLE AUTOMATION来操作这个WORD文档对象就可以了。
      

  7.   

    贴上来怎么成了乱字符了?主文档:Hello!《姓名》:
    Your address is 《地址》,is it correct?Yours,icevi
    《》内表示是插入的合并域。
      

  8.   

    icevi:
       谢谢了,我打心眼里佩服你,聪明。
       你这是vb的写法,我可不可以这样,用vb作成一个可执行文件,然后用vfp的命令去执行它,就相当于我用vb作成一个过程一样。这样行不行的。
       
      

  9.   

    或者,vfp的ole控件,但我现在有个问题,就是我在vfp中添加word 文档控件,但每次我在设计状态,右键点击打开或编辑改变的数据都能被保存的,但是运行状态,虽然也编辑了,但退出后,还是没有,这是怎么回事呢?
       呵呵,按钮,你哪里人呀
      

  10.   

    不必要用VB,也不需要用OLE控件,用OLE AUTOMATION就可以了。
    VFP语法我也记不清楚了,好象是用createobject创建一个WORD.application对象。就可以用这个对象,来打开WORD文档,操作这个WORD文档,完成一系列功能。在用完后还可以保存为DOC文件。具体的你看看VFP的帮助,应该有很详细的关于OLE AUTOMATION(或OLE2)的说明的。关于word.application对象的方法和属性,可以看VBA for word 的帮助。用OLE控件可能需要手工来操作,用OLE automation完全用代码来完成。
      

  11.   

    补充一下:没必要用VB做一个这样的程序,其实在VFP中做法是差不多的,就是语法不同罢了。调用word.application  的方法是一样的。