admin管理员组

文章数量:1532337

2024年6月20日发(作者:)

竭诚为您提供优质文档/双击可除

access报表绘制表格

篇一:access创建完美报表

access用word完美报表

access作为microsoftoffice办公软件包中的一部分,

以其友好的操作界面和卓越的数据管理能力而日益成为中

小型管理信息系统的理想开发环境,在各行各业得到了广泛

的应用。但在应用中我们发现,access在报表输出上还存在

一些不足:尽管它可以很好地处理一些基于页面的报表,但

对一些复杂报表或一些特殊报表的处理能力却很难令人满

意,这主要是由于access系统附带的报表设计器太过直观,

缺少了程序设计和文字处理所需的必要的灵活性。而word

作为microsoftoffice家族中的重要成员——字处理器,其

强大的文字处理功能正好可以弥补access在报表方面的不

足。这就使得我们自然而然地想到将access与word有机地

结合起来,利用access的数据处理功能进行数据的录入、

查询、存储,而利用word的字处理功能进行各种报表的打

1 22

印输出。幸好,微软在设计office的时候就已经为我们提

供了一种在诸如access、word、excel等应用程序之间通信

的机制,使得这种想法得以实现。

一、基本原理

对于一些复杂的或有特殊要求的查询,用ado(activex

数据对象)来处理要比用access本身提供的查询管理器更

灵活一些。所以我们的基本思路是:用ado执行一条或多条

特定的sql查询,生成我们所需要的一个或多个Recordset,

再将这些Recordset中的数据逐条输出到word文档,然后

就可以用程序或手工控制word文档的格式,达到我们的特

殊要求。这听起来挺麻烦,可只要了解了其工作原理,实际

操作却很简单。下面就分别以在access中和在word中的具

体操作为例进行介绍。

二、在access中应用ado将数据输出到word

1.系统配置

系统软件:microsoftwindows9x/nt/2000;

microsoftaccess2000;microsoftword2000。样例数据库:

“c:programFilesmicrosoftofficeofficesamplesno

”,office2000中包含的例子。可将其中的“产

品”表复制到一个新的数据库中,如“d:”。窗体:

在数据库“d:”中新建窗体“窗体1”,其中只包含

1个命令按钮“命令0”。

2 22

引用ado:按alt+F11进入Visualbasic编辑器,执行

“工具”->“引用”命令,在弹出的引用窗体中选择

“microsoftactivexdataobjects2.1”或更高版本。

引用word:再次执行命令“工具”->“引用”,在弹出

的引用窗体中选择“microsoftword9.0objectlibrary”。

2.代码详解

在“窗体1”的设计模式下右键单击“命令0”按钮,

选择“事件生成器”,进入Visualbasic编辑器,创建过程

“privatesub命令0_click()”,其代码如下:

sub命令0_click()

输入表格标题

title=inputbox(vbcrlf步骤1:建立数据连接cnn

由于数据库已经打开,所以直接应用

tion就可以建立连接

setcnn=tion

setcnn=tion

步骤2:用sql语句创建记录集rs

setrs=set

设定游标类型与锁定类型

type=adopenkeyset

pe=adlockoptimistic

制定特定的查询条件,可以是任何有效的sql查询,甚

3 22

至包括多表、多条件等复杂的查询,查询条件也常常从窗体

取得

sql="select产品名称,单位数量,单价,库存量from产

品where单价>10.00"

创建记录集rs

l,cnn

统计字段数及记录数

total_fields=

total_records=count

步骤3:建立word文档对象

setmywdapp=createobject("ation")

调整word窗口大小

state=wdwindowstatenormal

生成新的word文档实例

设置视图为页面视图

=wdprintView

转到word视图,显示文档生成过程

e=true

te

设置文档(表格)字体

="9"

4 22

步骤4:将记录集rs中的字段名称和字段内容输出到

word,各字段之间用制表符分隔输出字段名称

Fori=0tototal_fields-2

xttext:=(i).name最

后一个字段名称后加回车符

xttext:=(total_fie

lds-1).name逐条输出字段内容

Fori=0tototal_fields-2

tmpstr=(i).value

(i).name="单价"then

tmpstr=Format(tmpstr,"####.00")

endif

xttext:=tmpstr一条记录

的最后一个字段后加回车符

xttext:=(total_fie

lds-1).value步骤5:关闭记录集

setrs=nothing

5 22

步骤6:对word中的数据进行格式化处理

选定文本,将其转换为表格

设置视图为普通视图

=wdnormalView

将光标移动到文档末尾

unit:=wdstory

删除文档末尾多余的回车符

unit:=wdcharacter,count:=1

选中全部内容

tory

将所选内容转换为表格

ttotableseparator:=wdsepara

tebytabs,defaulttablebehavior:=wdword8tablebehavior

将光标移动到文档开头

yunit:=wdstory

选定表格对象

settemp_table=(1)

根据需要对表格进行处理,这是制作表格格式的关键,

可反复调试

本例只简单地设置了表格居中、自动调整表格列宽、表

6 22

头居中、标题行重复、设置表格边框线、设置表格纵向居中

temp_ent=wdalignRowcenter

temp_tbehaviorwdautoFitcontent

temp_(1).ent=

wdalignparagraphcenter

temp_(1).gFormat=wdtoggl

e

temp_s(wdborderleft).linewidth=wdlinewi

dth150pt

temp_s(wdborderRight).linewidth=wdlinew

idth150pt

temp_s(wdbordertop).linewidth=wdlinewid

th150pt

temp_s(wdborderbottom).linewidth=wdline

width150pt

7 22

temp_alalignment=wdcellalig

nVerticalcenter

将光标移动到文档开头

yunit:=wdstory

拆分表格

able

="黑体"

插入标题

xttext:=title刷屏

转到acdess视图,显示结束对话框

e=False

msg="数据提取完毕。"转到word视图,显示文档

e=true

te

endsub

三、在word中应用ado直接提取access数据库中的数

1.系统配置

系统软件:microsoftwindows9x/nt/2000;

microsoftword2000。样例数据库:

“c:programFilesmicrosoftofficeofficesamplesno

”,office2000中包含的例子。引用ado:按

8 22

alt+F11进入Visualbasic编辑器,执行命令“工具”->“引

用”,在弹出的引用窗体中选择

“microsoftactivexdataobjects2.1”或更高版本。

2.代码详解

进入Visualbasic编辑器,创建过程“subword_ado()”,

其代码如下:

subword_ado()

输入表格标题

title=inputbox(vbcrlf步骤1:建立数据连接cnn

打开连接,示例数据库:

c:programFilesmicrosoftofficeofficesamplesnort

cnn=tion

er=".4.0"

"c:programFilesmicrosoftofficeofficesam

"

步骤2:用sql语句创建记录集rs

setrs=set

type=adopenkeyset

pe=adlockoptimistic

sql="select产品名称,单位数量,单价,库存量from产

品where单价>10.00"

9 22

l,cnn

total_fields=

total_records=count

="9"

步骤3:将记录集rs中的字段名称和字段内容输出到

word文档,各字段之间用制表符分隔

Fori=0tototal_fields-2

xttext:=(i).name步骤4:

关闭记录集和连接

setrs=nothing

setcnn=nothing

步骤5:对word中的数据进行格式化处理

=wdnormalView

unit:=wdstory

unit:=wdcharacter,count:=1

tory

ttotableseparator:=wdseparatebytabs

,defaulttablebehavior:=wdword8tablebehavior

yunit:=wdstory

10 22

settemp_table=(1)

temp_ent=wdalignRowcenter

temp_tbehaviorwdautoFitcontent

temp_(1).ent=

wdalignparagraphcentertemp_(1).

.headingFormat=wdtoggle

temp_s(wdborderleft).linewidth=wdlinewi

dth150pt

temp_s(wdborderRight).linewidth=wdlinew

idth150pt

temp_s(wdbordertop).linewidth=wdlinewid

th150pt

temp_s(wdborderbottom).linewidth=wdline

width150pt

temp_alalignment=wdcellalig

nVerticalcenter

11 22

本文标签: 表格文档报表数据设置