精彩编程与编程技巧-在VB中操纵OLE服务器应用程序...
### 知识点详解 #### 一、VB与OLE服务器应用程序的交互原理 - **OLE概述**:OLE(对象链接与嵌入)是一种技术标准,它允许不同的应用程序之间进行通信和数据交换。通过OLE,一个应用程序可以作为服务提供者(OLE Server),而另一个应用程序则作为服务消费者(OLE Client)。在这种情况下,Visual Basic (VB) 可以充当OLE Client或OLE Server的角色。 - **OLE通信机制**: - **服务提供者**:如MS Word 6.0,支持OLE自动化,可以被其他应用程序控制。 - **服务消费者**:如Visual Basic 应用程序,可以通过调用OLE对象的方法来操作服务提供者的功能。 #### 二、在VB中创建OLE对象并操作OLE服务器 - **创建OLE对象**:在VB中,可以通过`CreateObject`函数来创建一个OLE对象实例。例如: ```vb Dim MSWORD As Object Set MSWORD = CreateObject("Word.Application") ``` 在上述代码中,`CreateObject("Word.Application")`用于创建Word应用程序的对象实例。 - **操作OLE对象**:一旦创建了OLE对象,就可以调用其方法和属性来实现对OLE服务器应用程序的操作。例如,可以通过调用`FileNewDefault`方法来新建一个Word文档: ```vb MSWORD.FileNewDefault ``` #### 三、在VB中通过OLE插入表格到Word文档 - **定义表格参数**: - `MaxCols`:表示每行的最大列数。 - `Row`:表示表格的总行数。 - `Col`:表示表格的总列数。 - **插入表格**:使用`MSWORD.TableInsertTable`方法来插入一个表格,并设置表格的初始样式。示例代码如下: ```vb MSWORD.TableInsertTable Col, Row, , , 16, 167 ``` - **填充表格内容**:遍历数据库记录集,将数据填充到Word文档中的表格单元格内。示例代码如下: ```vb For i = 1 To MaxCols If IsNull(Data1.Recordset.Fields(i - 1).Value) Then CellContent = "" Else CellContent = Data1.Recordset.Fields(i - 1).Value End If MSWORD.InsertCellContent CellContent MSWORD.NextCell Next i ``` #### 四、在VB中激活Word应用程序并操作 - **激活Word应用程序**:通过`AppActivate`方法来激活Word应用程序。示例代码如下: ```vb MSWORD.AppActivate "Microsoft Word", 1 ``` - **关闭Word应用程序**:在完成所有操作后,可以释放OLE对象资源来关闭Word应用程序。示例代码如下: ```vb Set MSWORD = Nothing ``` #### 五、示例代码分析 - **代码结构**:给定的部分内容包含了一个完整的VB应用程序示例,该示例展示了如何在VB中操作OLE服务器应用程序(以MS Word为例)来创建和编辑Word文档。 - **关键函数**:示例代码中包含了几个关键函数,如`InsertTableIntoMSWord()`,用于在Word文档中插入表格;`cmdReport_Click()`,用于响应按钮点击事件,触发Word文档的创建和编辑过程。 - **数据库操作**:示例代码还涉及到对本地数据库的操作,通过`Data1.Recordset`获取数据记录,并将其填充到Word文档中的表格中。 #### 六、总结 通过上述知识点的介绍,我们了解了在VB中如何利用OLE技术来操作OLE服务器应用程序(如MS Word),包括创建OLE对象、操作OLE对象以及与数据库结合的应用场景。这些知识点对于开发基于VB的应用程序来说非常重要,能够极大地扩展应用程序的功能和灵活性。
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新文档:
⑷调用结束后,使用关键字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()
剩余5页未读,继续阅读
- 粉丝: 22
- 资源: 3095
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助