2024年3月19日发(作者:)

6

卷第年

8

电脑知识

23

and

(2010)

与技术

ComputerKnowledgeTechnology

Vol.6,No.23,August2010,pp.6407-6408

ISSN1009-3044

E-mail:jslt@

电脑知识

与技术

ComputerKnowledgeandTechnology

Tel:+86-551-569

浅析利用VB6.0将Access数据表转换为Word文档

陈军民

(江西外语外贸职业学院,江西南昌

330099

摘要:将

Access

数据表转换为

Word

文档,是我们在日常工作过程中经常会碰到的一类问题。该文通过一个实例

,

首先介绍利用

Office

自带功能的各种方法,以及这些方法所存在的诸多局限;然后详细阐述利用

VB6.0

编程方法,突破这些局限,转换为用户所需

要的

Word

文档格式。

关键字:

VB6.0

Access

Word

;办公自动化

中图分类号:

TP311

文献标识码:

A

文章编号:

1009-3044(2010)23-6407-02

AnalysisUsingVB6.0theAccessDataTableConvertaWordDocument

CHENJun-min

(JiangxiCollegeofForeignStudies,Nanchang330099,China)

Abstract:TheAccessdatatableConvertaWorddocument,isourdailywork,

thispaper,anexample,firstintroducedtheuseofOfficecomeswithfeaturesavarietyofways,andthesemethodshavemanylimitationsex-

ist;thenelaboratedusingVB6.0programmingmethods,tobreakthroughtheselimitations,convertuserneedsWorddocumentformat.

Keywords:VB6.0;Access;Word;Office

我们在日常办公过程中

,

经常会碰到这样的情况

,

某种软件的后台

Access

数据库中含有一些有用的数据信息

,

这些数据信息只

有通过某种特定的软件才能打开使用

,

但我们在办公过程中经常使用的软件是

Word,

那我们就会很自然地想到能否将专属于

Access

的数据信息转换成用户所需要的

Word

文档格式。如本文所讨论的“全国计算机等级考试”上机模拟系统,它的后台是一个

Access

据库(以下简称:“等考系统”后台数据库),存储考试题库,这些题目信息只有通过其软件打开。而我们现在想将其转换为

Word

档,打印装订成册,提供给学生复习。

1

利用

Office

自带转换功能,及存在的诸多局限

Access

Word

同属于

Office

家族

,

它们之间提供了多种数据转换功能,主要有以下三种方式。

1)

利用剪贴板

Access

中,打开要转换的表,选择一组记录进行“复制”,将所选内容复制到剪贴板中;随后打开

Word

,单击工具栏上的“粘

贴”或“选择性粘贴”,就可将剪贴板中的数据粘贴为

Word

文档中的表格或普通文本。

2)

导出为

RTF

文件

Access

中,打开要转换的数据表,执行“文件

/

导出”命令,将“保存类型”指定为“

RTF

格式”,即可以转换为一个

Word

文档。

3)

直接插入数据库

Word

文档中,选择“视图

/

工具栏

/

数据库”。在“数据库”工具栏中单击“插入数据库”按钮。然后“获取数据”、“打开数据源”、

“选择

Access

数据库”,即可以将一个

Access

数据库插入到

Word

文档中。

上述各种自带功能的转换方法,尽管提供了各种较为灵活的方式,如选择字段转换,选择条件转换,选择转换后的样式等。但根

据实际应用,总感觉有很多局限,主要体现在以下两点:

1)Office

自带转换功能无法转换

Access

中的

OLE

类型,即长二进制类型。如在“等考系统”后台数据库中,题干中的图片,是用

字段

TOPIC_INTE_IMG

)存储,它是一种

OLE

类型。要将其转换到

Word

文档中,并将它放在相应的位置,

Office

自带转换功能无法

实现。

2)

各个字段的值在转换之后,不能根据用户的要求在

Word

文档中进行自由排列,不能一次性成批地进行字体大小和颜色等方

面的修改,不能根据用户的需要在字段之间插入其它文本。如在“等考系统”后台数据库中,答案分析(

TOPIC_ANS

)字段在题干文本

TOPIC_INE

)字段的前面,但转换成

Word

文档后,我们希望重新排列它们的位置,将题干放在答案分析的前面,且希望它们有不同

的字体和颜色,题目与题目之间加一条分隔线。利用

Office

自带转换功能,无法一次性成批地实现这些要求,往往在转换之后,还要

经过大量的

Word

后期排版工作。

要突破这些局限,真正按照用户的需求进行转换,可以利用

VB6.0

编程的方法实现。

2VB6.0

实现转换的基本思想

Access

作为一个关系数据库系统,一个数据库文件可能包含一个或多个数据表,在每个数据表中按照字段的类型存储数据。如

在“等考系统”后台数据库中,

TOPIC

数据表的主要字段有:

TYPE

(题型)、

TOPIC_INTE

(题干文本)、

TOPIC_INTE_IMG

(题干图片)、

TOPIC_ANS

(答案分析)等,其中字段

TOPIC_INTE_IMG

,是

OLE

类型,存储的是图片。而程序员想要灵活地操纵这些数据,比较好的

收稿日期:

2010-05-15

作者简介:陈军民(

1968-

),男,江西宜春人,江西外语外贸职业学院信息管理系讲师,高级工程师,研究方向为高职计算机教育。

本栏目责任编辑:代影

数据库与信息管理

6407

ComputerKnowledgeandTechnology

电脑知识

与技术

6

卷第

23

(2010

8

)

一种方法,就是利用

Microsoft

公司的

ADO

对象连接

Access

数据库,然后用

SQL

语句打开数据表,分别读取数据表的文本类型字段

和图片类型字段(这两种字段的读取方式差异较大),最后再将它们写入到

Word

文档中。

要将从数据表中读取的值写入到

Word

文档中,首先必须引用

Word

对象库

,

Word2003

的对象库

MicrosoftWord11.0Object

Library

,然后新建一个

Word

文档对象,对文本类型和图片类型数据分别写入(这两种类型数据的写入,差异也较大),同时利用

Word

对象库中提供的对象进行

Word

排版。

3VB6.0

实现转换的主要过程

1)

引用

ADO

对象库和

Word

对象库

VB6.0

“工程

/

引用”对话框中,勾选

MicrosoftActivexDataObject2.5Libray

MicrosoftWord11.0ObjectLibrary

两个对象

库。第一个是

ADO2.5

对象库,因为要操作图片,其版本必须在

2.5

以上。第二个是

Word2003

的对象库,它的对应版本是

11.0

2)

利用

ADO

对象连接

Access

数据库

*tion

‘新建数据库连接对象

*DimConnstrAsString

‘定义数据库连接字符串变量

*Connstr="Provider=.4.0;DataSource="&&";PersistSecurityInfo=False"

‘给数据库连接字符串变量赋值,其中

是“等考系统”后台数据

库的文件名

*nnstr

‘打开数据库连接

3)

SQL

语句打开数据表

*set

‘新建数据表记录集对象

*"select*fromTOPIC",Conn,adOpenKeyset,adLockOptimistic

‘用

SQL

语句打开

数据库中

TOPIC

数据表

4)

建立

Word

文档对象并打开

*SetobjWord=CreateObject("ation")

‘新建

Word

对象

*e=True

‘使

Word

对象可见

*SetobjDoc=()

‘在

Word

对象中创建

Word

文档

5)

转换文本字段并设置样式

*=12

‘设置字体大小为

12

号字

*inText=Rs("TOPIC_INTE").Value

‘读取题干文本字段的值

*xtinText

‘将题干文本部分插入到

Word

文档中

有关其它文本字段的转换,参照此方法进行。在转换的同时,可以设置相关文本属性,突破了

Office

自带转换功能的局限。并可

以根据用户的要求插入相应文本,如在题目与题目之间插入一个分隔线,可用以下语句:

xt"***************************************

6)OLE

图片字段的转换

OLE

图片字段的转换不同于文本字段,它的读取首先要新建一个

ADO

流对象(

Stream

,

设置类型(

Type

)为

OLE

图片(二进制文

件)并打开。在流对象(

Stream

)中有一个非常重要的方法

GetChunk

,它可以根据数据的实际大小(

ActualSize

)读出

OLE

字段,然后写

入到流对象中。相关语句如下:

*

‘新建流对象

*=1

‘设置流对象类型为

OLE

图片(二进制文件)

*

‘打开流对象

*s("TOPIC_INTE_IMG").GetChunk(Rs("TOPIC_INTE_IMG").

ActualSize)

‘获取题干图片字段(

TOPIC_INTE_IMG

)的实际大小并用

GetChunk

方法取得相应数据,然后写入到流对象中。

此时流对象(

objStream

)中实际存储了一个

OLE

图片,但它不能直接写入到

Word

文档中,而只能存储为一个文件。为此应先建

一个临时图片文件

,

然后利用

ture

命令

,

将这个图片文件插入到

Word

文档中,并设置好相应格

,

最后再把临时图片文件

删除。

*fName=&""

‘在当前文件夹中建立临时图片文件

*FilefName,adSaveCreateOverWrite

‘将流对象存储到临时图片文件

*tureFileName:=fName,LinkToFile:=False,SaveWithDocument:=True

‘将临时文件

插入到

Word

文档中

*ent=wdAlignParagraphCenter

‘设置图片在

Word

文档中居中显示

*KillfName

‘删除临时图片文件

4

结束语

利用

VB6.0

编程方式,将

Access

数据表转换为

Word

文档,完全可以突破性

Office

自带转换功能的各种局限,按照用户所需要

Word

格式进行转换,极大地提高办公效率。

参考文献:

[1]

刘海涛

.Access

中实现读写

OLE

字段及制作

Word

报表

[J].

电脑学习

,2009(2).

[2]

李峰

.

Access

Office

其它成员之间交流数据

[J].

应用经验

,2005(4).

[3]

付全

.

浅析

Office

成员间的数据交流

[J].

科技资讯

,2008(27).

6408

数据库与信息管理

本栏目责任编辑:代影