access报表绘制表格.docx
- 文档编号:6507129
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:8
- 大小:20.91KB
access报表绘制表格.docx
《access报表绘制表格.docx》由会员分享,可在线阅读,更多相关《access报表绘制表格.docx(8页珍藏版)》请在冰豆网上搜索。
access报表绘制表格
竭诚为您提供优质文档/双击可除
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\northwind.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_fields-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_fields-1).value步骤5:
关闭记录集
rs.close
setrs=nothing
步骤6:
对word中的数据进行格式化处理
选定文本,将其转换为表格
设置视图为普通视图
mywdapp.activewindow.View.type=wdnormalView
将光标移动到文档末尾
mywdapp.selection.endkeyunit:
=wdstory
删除文档末尾多余的回车符
mywdapp.selection.deleteunit:
=wdcharacter,count:
=1
选中全部内容
mywdapp.selection.wholestory
将所选内容转换为表格
mywdapp.selection.converttotableseparator:
=wdseparatebytabs,defaulttablebehavior:
=wdword8tablebehavior
将光标移动到文档开头
mywdapp.selection.homekeyunit:
=wdstory
选定表格对象
settemp_table=mywdapp.activedocument.tables
(1)
根据需要对表格进行处理,这是制作表格格式的关键,可反复调试
本例只简单地设置了表格居中、自动调整表格列宽、表头居中、标题行重复、设置表格边框线、设置表格纵向居中
temp_table.Rows.alignment=wdalignRowcenter
temp_table.autoFitbehaviorwdautoFitcontent
temp_table.Rows
(1).Range.paragraphFormat.alignment=wdalignparagraphcenter
temp_table.Rows
(1).Range.Rows.headingFormat=wdtoggle
temp_table.borders(wdborderleft).linewidth=wdlinewidth150pt
temp_table.borders(wdborderRight).linewidth=wdlinewidth150pt
temp_table.borders(wdbordertop).linewidth=wdlinewidth150pt
temp_table.borders(wdborderbottom).linewidth=wdlinewidth150pt
temp_table.Range.cells.Verticalalignment=wdcellalignVerticalcenter
将光标移动到文档开头
mywdapp.selection.homekeyunit:
=wdstory
拆分表格
mywdapp.selection.splittable
mywdapp.selection.Font.name="黑体"
插入标题
mywdapp.selection.typetexttext:
=title刷屏
转到acdess视图,显示结束对话框
mywdapp.Visible=False
msg="数据提取完毕。
"转到word视图,显示文档
mywdapp.Visible=true
mywdapp.activate
endsub
三、在word中应用ado直接提取access数据库中的数据
1.系统配置
系统软件:
microsoftwindows9x/nt/2000;microsoftword2000。
样例数据库:
“c:
\programFiles\microsoftoffice\office\samples\northwind.mdb”,office2000中包含的例子。
引用ado:
按alt+F11进入Visualbasic编辑器,执行命令“工具”->“引用”,在弹出的引用窗体中选择“microsoftactivexdataobjects2.1”或更高版本。
2.代码详解
进入Visualbasic编辑器,创建过程“subword_ado()”,其代码如下:
subword_ado()
输入表格标题
title=inputbox(vbcrlf步骤1:
建立数据连接cnn
打开连接,示例数据库:
c:
\programFiles\microsoftoffice\office\samples\northwind.mdbsetcnn=newadodb.connection
cnn.provider="microsoft.jet.oledb.4.0"
cnn.open"c:
\programFiles\microsoftoffice\office\samples\northwind.mdb"
步骤2:
用sql语句创建记录集rs
setrs=newadodb.Recordset
rs.cursortype=adopenkeyset
rs.locktype=adlockoptimistic
sql="select产品名称,单位数量,单价,库存量from产品where单价>10.00"
rs.opensql,cnn
total_fields=rs.Fields.count
total_records=rs.Recordcount
activedocument.Range.Font.size="9"
步骤3:
将记录集rs中的字段名称和字段内容输出到word文档,各字段之间用制表符分隔Fori=0tototal_fields-2
selection.typetexttext:
=rs.Fields(i).name步骤4:
关闭记录集和连接
rs.close
cnn.close
setrs=nothing
setcnn=nothing
步骤5:
对word中的数据进行格式化处理
activewindow.View.type=wdnormalView
selection.endkeyunit:
=wdstory
selection.deleteunit:
=wdcharacter,count:
=1
selection.wholestory
selection.converttotableseparator:
=wdseparatebytabs,defaulttablebehavior:
=wdword8tablebehavior
selection.homekeyunit:
=wdstory
settemp_table=activedocument.tables
(1)
temp_table.Rows.alignment=wdalignRowcenter
temp_table.autoFitbehaviorwdautoFitcontent
temp_table.Rows
(1).Range.paragraphFormat.alignment=wdalignparagraphcentertemp_table.Rows
(1).Range.Rows.headingFormat=wdtoggle
temp_table.borders(wdborderleft).linewidth=wdlinewidth150pt
temp_table.borders(wdborderRight).linewidth=wdlinewidth150pt
temp_table.borders(wdbordertop).linewidth=wdlinewidth150pt
temp_table.borders(wdborderbottom).linewidth=wdlinewidth150pt
temp_table.Range.cells.Verticalalignment=wdcellalignVerticalcenter
selection.homekeyunit:
=wdstory
selection.splittable
selection.Font.name="黑体"
selection.typetexttext:
=title设置线度量单位me.scalemode=3(可自己选择度量单位)
设置线(宽度)
me.drawwidth=3
设置线的类型
me.drawstyle=0
Foreachainme.controls
ifa.controltype=aclabelanda.tag="left"then
画顶线
me.line(a.left,0)-(a.left+a.width+70,0)
画竖线
me.line(a.left,0)-(a.left,a.height+70)
画底线
me.line(a.left,a.height+70)-(a.left+a.width+70,a.height+70)
elseifa.controltype=aclabelanda.tag="lR"then
画顶线
me.line(a.left,0)-(a.left+a.width,0)
画左竖线
me.line(a.left,0)-(a.left,a.height+70)
画右竖线
me.line(a.left+a.width,-70)-(a.left+a.width,a.height+70)
画底线
me.line(a.left,a.height+70)-(a.left+a.width,a.height+70)
endif
next
endsub
privatesub主体_Format(cancelasinteger,Formatcountasinteger)
dimaascontrol
设置线(宽度),
me.drawwidth=12
设置线的类型
me.drawstyle=0
Foreachainme.controls
ifa.controltype=actextboxanda.tag="left"then
me.line(a.left,-70)-(a.left,a.height+70)
me.line(a.left,a.height+70)-(a.left+a.width+70,a.height+70)
elseifa.controltype=actextboxanda.tag="lR"then
me.line(a.left,-70)-(a.left,a.height+70)
me.line(a.left+a.width,-70)-(a.left+a.width,a.height+70)
me.line(a.left,a.top-70)-(a.left+a.width,a.top-70)
me.line(a.left,a.height+70)-(a.left+a.width,a.height+70)
endif
next
endsub
预览报表结果:
下面进行分组操作:
进入报表设计窗口,点击鼠标右键,
选择排序与分组,选择分组字段,
报表设计窗口,出现组页眉(货主名称页眉)和组页脚(货主名称页脚),
货主名称页眉,在这用不到,可设高度为0,或设置属性中的可见属性为否。
既然分组了,得合计数据,例如需合计运货费,在货主名称页脚增加一文本框,文本框中录入“=sum([运货费])“,将文本框与主体节的“运货费”文本框对齐即可。
再新增一标签录入“合计”,在适当位置即可。
篇三:
access报表
第6章报表
报表是专门为打印而设计的窗体。
不同之处在于窗体可以与用户进行信息交互,而报表没有交互功能。
本章主要介绍报表的一些基本应用操作,如报表的创建、报表的设计及报表的存储和打印等内容。
建立报表和建立窗体的过程基本一样,只是窗体最终显示在屏幕上,而报表还可以打印在纸上。
6.1报表概述
报表是数据库数据输出的一种对象。
建立报表是为了以纸张的形式保存或输出数据。
利用报表可以控制数据内容的大小和外观,排序、汇总相关数据,输出数据到屏幕或打印设备上。
6.1.1报表的定义及分类
1.报表的定义
报表是access数据库的对象之一,主要作用是比较和汇总数据,显示经过格式化且分组的信息,并可以将它们打印出来。
2.报表的分类
报表主要分为以下4种类型:
纵栏式报表、表格式报表、图表报表和标签报表。
下面分别进行说明。
(1)纵栏式报表
纵栏式报表(也称为窗体报表)一般是在一页的主体节内以垂直方式显示一条或多条记录。
这种报表可以显示一条记录的区域,也可同时显示多条记录的区域,甚至包括合计。
(2)表格式报表
表格式报表以行和列的形式显示记录数据,通常一行显示一条记录、一页显示多行记录。
表格式报表与纵栏式报表不同,字段标题信息不是在每页的主体节内显示,而是在页(access报表绘制表格)面页眉显示。
可以在表格式报表中设置分组字段、显示分组统计数据。
(3)图表报表
图表报表是指在报表中使用图表,这种方式可以更直观地表示出数据之间的关系。
不仅美化了报表,而且可使结果一目了然。
(4)标签报表
标签是一种特殊类型的报表。
在实际应用中,经常会用到标签,例如,物品标签、客户标签等。
在上述各种类型报表的设计过程中,根据需要可以在报表页中显示页码、报表日期甚至使用直线或方框等来分隔数据。
此外,报表设计可以同窗体设计一样设置颜色和阴影等外观属性。
6.1.2报表的视图
在access中,报表操作提供了3种视图:
“设计”视图、“打印预览”视图和“版面预览”视图。
“设计”视图用于创建和编辑报表的结构;“打印预览”视图用于查看报表的页面数据输出形态;“版面预览”视图用于查看报表的版面设置。
3个视图的切换可以通过“报表设计”工具栏中“视图”工具按钮右侧下拉菜单中的3个按钮:
“设计”视图、“打印预览”视图和“版面预览”视图来进行选择。
6.1.3报表的结构
在报表的“设计”视图中,区段被表示成带状形式,称为“节”。
报表中的信息可以安排在多个节中,每个节在页面上和报表中具有特定的目的并按照预期顺序输出打印。
与窗体的“节”相比,报表区段被分为更多种类的节。
1.报表页眉
在报表的开始处,即报表的第一页打印一次。
用来显示报表的标题、图形或说明性文字,每份报表只有一个报表页眉。
一般来说,报表页眉主要用在封面。
2.页面页眉
页面页眉中的文字或控件一般输出显示在每页的顶端。
通常,它是用来显示数据的列标题。
可以给每个控件文本标题加上特殊的效果,如颜色、字体种类和字体大小等。
一般来说,把报表的标题放在报表页眉中,该标题打印时在第一页的开始位置出现。
如果将标题移动到页面页眉中,则该标题在每一页上都显示。
3.组页眉
根据需要,在报表设计5个基本的“节”区域的基础上,还可以使用“排序与分组”属性来设置“组页眉/组页脚”区域,以实现报表的分组输出和分组统计。
组页眉节主要安排文本框或其它类型控件显示分组字段等数据信息。
可以建立多层次的组页眉及组页脚,但不可分出太多的层(一般不超过3~6层)。
4.主体
打印表或查询中的记录数据,是报表显示数据的主要区域。
根据主体节内字段数据的显示位置,报表又划分为多种类型。
5.组页脚
组页脚节内主要安排文本框或其他类型控件显示分组统计数据。
打印输出时,其数据显示在每组结束位置。
在实际操作中,组页眉和组页脚可以根据需要单独设置使用。
可以从“视图”菜单中选择“排序与分组”选项。
6.页面页脚
一般包含页码或控制项的合计内容,数据显示安排在文本框和其他的一些类型控件中。
在报表每页底部打印页码信息。
7.报表页脚
该节区一般是在所有的主体和组页脚输出完成后才会打印在报表的最后面。
通过在报表页脚区域安排文本框或其他一些类型控件,可以显示整个报表的计算汇总或其他的统计数字信息。
6.2创建及编辑报表
在access中,可将数据库中的表和查询生成报表,主要提供了3种创建报表的方式:
使用“自动报表”功能、使用向导功能和使用“设计”视图创建。
与窗体创建过程一样,一般可以首先使用“自动报表”或向导功能快速创建报表结构,然后再在“设计”视图环境中对其外观、功能加以“修缮”,这样可以大大提高报表设计的效率。
6.2.1使用报表向导创建报表
1.使用“自动报表”创建报表
“自动报表”功能是一种快速创建报表的方法。
设计时,先选择表或查询作为报表的数据源,然后选择报表类型:
纵栏式或表格式,最后会自动生成报表显示数据源所有字段记录数据。
【例6.1】在jxgl.mdb数据库中使用“自动报表”创建学生信息报表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- access 报表 绘制 表格
![提示](https://static.bdocx.com/images/bang_tan.gif)