[access报表]access报表画线实例(一)统一控件格式
时 间:2008-12-01 13:04:24
作 者:芊芊 ID:54 城市:东营
摘 要:ACCESS报表画线实例
正 文:
在使用ACCESS报表时,表格线成为令人头疼的问题,手工画线费时费力,对不齐且画不直;使用文本框和标签的边框样式,由于调整的原因文本框和标签的高度和宽度及上边距不同,所画出的线条也不直不齐;手工统一设置文本框和标签的长宽高,左边距、上边距,有过于繁琐。这些问题用VBA可以为我们解决。
首先要在报表视图中将所有的可见控件排列整齐,然后在报表模块中写入画线代码。
一、将所用的控件排列整齐
1、 使用报表向导创建报表
点击下一步,
如果在此选择分组,报表界面有些乱,后面再加入好些,点击下一步,
选择需要排序的字段,点击下一步,
布局选择“表格”,点击下一步,
所用样式选择“正式”较符合习惯,点击下一步,
点击,“完成”,报表创建完成。局部图片如下:
点击“视图”按钮,进入报表设计窗口,
根据需要做相关调整,例如页面页眉的文本框想宽些,那么只需要调整“订单ID”标签的高度,其他的不用管它,VBA将自动调整到与“订单ID”标签的高度一致。同理,主体只需调整“订单ID”文本框的高度即可。
再就是把页面页眉中的那条黑线去掉吧。为了明了去掉网格。
主体中的“运输费”、“货主名称”“货主地址”文本框,有些宽,无需调整左间隙只把它调整到适当的宽度即可。页面页眉中的“运输费”、“货主名称”“货主地址”标签可不用管他,VBA将自动调整到与主体的相关控件的宽度一致,并统一设置控件的左右间隙。同理“货主城市”“货主地区”“货主邮政编码”“货主国家”调整适当宽度即可。
在模块中,新建一模块,例如“统一报表画线控件格式”,
进入模块设计窗口,将下列代码粘贴进去,
'=========================================
'过程名:sameformat
'作用: 为报表画线,统一各控件的宽度.高度.和间隙
'1.取主体和页面页眉第一个控件的高度height为标准,设置其他控件的高度.
'2.以主体的每一个控件的宽度width为标准,设置页面页眉相对应控件的宽度
'3.连接主体和页面页眉的控件,使其隙一致.
'==========================================
Sub SameFormat()
Dim a As Control
Dim b As Control
Dim zname As String
Dim yname As String
Dim zleft As Single
Dim zwidth As Single
Dim zheight As Single
Dim yheight As Single
Dim MyRepName As String
'设定要统一格式的报表名称
'===========================
Dim MyRep As Report
'此处报表的名称,打开进入设计状态(修改为自己的报表名称)
DoCmd.OpenReport "订单", acViewDesign
'此处报表的对象名称Report_*****
Set MyRep = Screen.ActiveReport
MyRepName = MyRep.Name
'此处报表的对象名称Report_*****
Set MyRep = Screen.ActiveReport
MyRepName = MyRep.Name
'=============================
'取主体和页面页眉第一各控件的height
For Each a In MyRep.主体.Controls
zheight = a.Height
tt = a.Top
Exit For
Next
For Each a In MyRep.页面页眉.Controls
yheight = a.Height
Exit For
Next
'设主体各Textbox之间的间隙一致
zleft = 0
For Each a In MyRep.主体.Controls
a.Left = zleft
a.Height = zheight
'画线标志
a.Tag = "lr"
'统一上边距
a.Top = 58
zleft = a.Left + a.Width
Next
'设置页面页眉的Label与主体各Textbox的宽度一致
For Each a In MyRep.主体.Controls
zname = a.Name
zwidth = a.Width
zleft = a.Left
For Each b In MyRep.页面页眉.Controls
yname = b.Name
ywidth = b.Width
If Left(b.Name, Len(b.Name) - 6) = zname Then
b.Left = zleft
b.Width = zwidth
b.TextAlign = 2
b.Height = yheight
b.Tag = "lr"
b.Top = 58
End If
Next
Next
MyRep.主体.Height = zheight
MyRep.页面页眉.Height = yheight
'设置完成保存一下
DoCmd.Close acReport, MyRepName, acSaveYes
'再打开看看是否成功
DoCmd.OpenReport MyRepName, acViewDesign
End Sub
运行后,效果图如下:
已经左右间隙统一,上下对齐,高度也一致了。
以上代码稍加修改,也可加入到报表OPEN事件中,完成此项工作。但对报表的生成速度有影响,调整设置也不频繁,设置后很少再调整,模块过程单独使用较好。
页面页眉的标签、主体节文本框中的文字,垂直居中可选中所用标签,在属性中设置:
剩下就是画线了,请看ACCESS报表画线实例(二)VBA画线。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)