access报表绘制表格
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除access报表绘制表格
篇一:access创建完美报表
access用word完美报表
access作为microsoftoffice办公软件包中的一部分,以其友好的操作界面和卓越的数据管理能力而日益成为中
小型管理信息系统的理想开发环境,在各行各业得到了广泛的应用。但在应用中我们发现,access在报表输出上还存在一些不足:尽管它可以很好地处理一些基于页面的报表,但对一些复杂报表或一些特殊报表的处理能力却很难令人满意,这主要是由于access系统附带的报表设计器太过直观,缺少了程序设计和文字处理所需的必要的灵活性。而word
作为microsoftoffice家族中的重要成员——字处理器,其强大的文字处理功能正好可以弥补access在报表方面的不足。这就使得我们自然而然地想到将access与word有机地结合起来,利用access的数据处理功能进行数据的录入、查询、存储,而利用word的字处理功能进行各种报表的打
印输出。幸好,微软在设计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:\programFiles\microsoftoffice\office\samples\no rthwind.mdb”,office2000中包含的例子。可将其中的“产品”表复制到一个新的数据库中,如“d:\db1.mdb”。窗体:在数据库“d:\db1.mdb”中新建窗体“窗体1”,其中只包含1个命令按钮“命令0”。
引用ado:按alt+F11进入Visualbasic编辑器,执行“工具”->“引用”命令,在弹出的引用窗体中选择“microsoftactivexdataobjects2.1”或更高版本。
引用word:再次执行命令“工具”->“引用”,在弹出的引用窗体中选择“microsoftword9.0objectlibrary”。
2.代码详解
在“窗体1”的设计模式下右键单击“命令0”按钮,选择“事件生成器”,进入Visualbasic编辑器,创建过程“privatesub命令0_click()”,其代码如下:
sub命令0_click()
输入表格标题
title=inputbox(vbcrlf步骤1:建立数据连接cnn
由于数据库已经打开,所以直接应用
currentproject.connection就可以建立连接
setcnn=newadodb.connection
setcnn=currentproject.connection
步骤2:用sql语句创建记录集rs
setrs=newadodb.Recordset
设定游标类型与锁定类型
rs.cursortype=adopenkeyset
rs.locktype=adlockoptimistic
制定特定的查询条件,可以是任何有效的sql查询,甚
至包括多表、多条件等复杂的查询,查询条件也常常从窗体取得
sql="select产品名称,单位数量,单价,库存量from产品where单价>10.00"
创建记录集rs
rs.opensql,cnn
统计字段数及记录数
total_fields=rs.Fields.count
total_records=rs.Recordcount
步骤3:建立word文档对象
setmywdapp=createobject("word.application")
调整word窗口大小
mywdapp.windowstate=wdwindowstatenormal
生成新的word文档实例
mywdapp.documents.add
设置视图为页面视图
mywdapp.activewindow.View.type=wdprintView
转到word视图,显示文档生成过程
mywdapp.Visible=true
mywdapp.activate
设置文档(表格)字体
mywdapp.activedocument.Range.Font.size="9"
步骤4:将记录集rs中的字段名称和字段内容输出到word,各字段之间用制表符分隔输出字段名称
Fori=0tototal_fields-2
mywdapp.selection.typetexttext:=rs.Fields(i).name最后一个字段名称后加回车符
mywdapp.selection.typetexttext:=rs.Fields(total_fie lds-1).name逐条输出字段内容
dowhilenotrs.eoF
Fori=0tototal_fields-2
tmpstr=rs.Fields(i).value
ifrs.Fields(i).name="单价"then
tmpstr=Format(tmpstr,"####.00")
endif
mywdapp.selection.typetexttext:=tmpstr一条记录的最后一个字段后加回车符
mywdapp.selection.typetexttext:=rs.Fields(total_fie lds-1).value步骤5:关闭记录集
rs.close
setrs=nothing