当前位置: 网学 > 编程文档 > VB > 正文

在VB中操纵OLE服务器应用程序

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式

OLE自动化是不同应用程序之间进行通讯的一个标准。OLE自动化的工作方式是:通讯被动方(OLE服务器)应用程序向通讯主动方(OLE客户机)应用程序提供一个以上可供其调用的OLE自动化对象类型,OLE客户机通过引用这些对象实现对OLE服务器的调用,然后通过设置对象的属性和使用对象的方法操纵OLE服务器应用程序,完成两者之间的通讯。

Visual Basic是一个完全支持OLE自动化的应用程序开发工具。使用VB,既可以编制做为OLE服务器的应用程序,也可以编制作为OLE客户机的应用程序。MS Word 6.0是一个不完全支持OLE自动化的应用软件,它只能作为OLE服务器供其它应用程序调用。本文将以一个VB应用程序通过OLE自动化操纵MS Word 6.0的实例,具体描述在VB中操纵OLE服务器应用程序的方法。

在VB代码中调用OLE服务器的方法如下:控件类型 属性 属性值 Data Control DataBaseNameName C:\VB\BIBLIO.MDBData1 RecordSource Authors DBGrid ControlCommandButton Control DataSource Data1 Name cmdReport Caption 生成报表 CommandButton Control Name cmdExit Caption 退出

⑴声明一个对象变量。如:Dim MS—WORD As Object

⑵根据OLE服务器提供的对象类型,使用CreateObject函数创建一个对象,并由Set语句将该对象赋予对象变量。

CreateObject函数的语法如下:

CreateObject(class)

函数参数class的格式为:appname.objecttype

appname是提供对象的应用程序的名称,如:Word

objecttype是欲创建的对象的类,如:Basic

MS Word 6.0为OLE客户机应用程序提供了一个类型为“basic”的对象,VB可以使用该对象类型,实现对Word的调用。具体语句如下:

Set MS—WORD = CreateObject(″Word.Basic″)

⑶通过设置对象的属性和使用对象的方法,实现对OLE服务器的操纵。

对象类型“basic”采用Word宏语言WordBasic的大多数语句和函数作为它的方法。也就是说,一旦在VB中创建了一个“basic”对象,就可以通过该对象使用大多数WordBasic语句或函数,从而可以近乎完美地操纵Word或Word文档。例如,下列语句在VB代码中使用WordBasic的FileNewDefault语句创建一个Word新文档:

MS—WORD.FileNewDefault

⑷调用结束后,使用关键字Nothing,释放该变量占用的资源。如:Set MS—WORD = Nothing

实例

本例将使用VB编写一个简单的数据库应用程序。该程序从数据库中取出数据,然后通过OLE自动化将这些数据输入至Word,并按照Word的排版格式编排成一个表格。例中使用的数据库是VB自含的BILIO.MDB数据库,数据检索结果取自Authors数据表。本例稍加改动,即可作为数据库应用程序的报表生成功能模块使用。

首先,创建一个名为Form1的窗体,设置其Caption 属性为“OLE自动化演示”。然后在该窗体中加入四个控件并设置有关属性,具体如下:







完成上述工作后,按F5运行的屏幕布局应如下图示。

接着需要编写VB代码来实现与Word的连接。本实例的代码清单如下(注:代码中的斜体部分是WordBasic宏语言的语句,这些语句的使用方法请参阅WordBasic宏语言有关资料):

⑴在Form1的General Declarations部分声明窗体级全局变量和常量。

Dim MS—WORD As Object ''声明一个对象变量

Const MaxCols = 5 ''声明一个用于标明当前数据记录集中字段个数的常量。在本例中字段个数为5

⑵创建一个子例程InsertTableIntoMS—Word(),该子例程使用WordBasic宏语言在Word 6.0中制作一个表格,并将当前数据记录集中的数据依次插入表格单元。

Sub InsertTableIntoMS—Word()

Dim i As Integer, j As Integer, Col As Integer, Row As Integer

Dim CellContent As String

Me.Hide

Col = MaxCols

Row = Data1.Recordset.RecordCount

MS—WORD.FileNewDefault

MS—WORD.MsgBox ″正在建立报表,请稍候…″
  • 上一篇资讯: VB编程制作图片热区
  • 下一篇资讯: 用VB获取桌面图象
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号