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
版权声明:本文标题:access报表绘制表格 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1718828053a730403.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论