Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-报表

ACCESS报表画线实例(二)VBA画线

时 间:2013-11-16 14:31:56
作 者:杜威   ID:9152  城市:厦门
摘 要:ACCESS报表画线实例(二)VBA画线。
正 文:

这是我们网站的会员的作品,拿过来大家欣赏下!借鉴借鉴!


作 者:芊芊
摘 要:报表画线

    在报表视图中已将所有的控件排列整齐,现在需要在报表相关“节“中的FORMAT事件中,写入画线的相关代码。

       进入报表设计窗口,进入页面页眉节的属性对话框,点击“事件“,找到“格式化”,点击最右边的“三个点”的按钮,

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国

进入VBE窗口,将代码粘贴进去(主体FROMAT事件也一起粘贴进去了)。

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国

代码如下:

说明:代码中+70-70,是因为如果页面页眉或主体节,调整高度大时,根据控件边框画线有间断的情况,可根据实际情况适当调整,使画线连续。

 Private Sub 页面页眉_Format(Cancel As Integer, FormatCount As Integer)

    Dim a As Control

    '设置线度量单位    Me.scalemode = 3 (可自己选择度量单位)

'设置线(宽度)

    Me.DrawWidth = 3

    '设置线的类型

    Me.DrawStyle = 0

    For Each a In Me.Controls

        If a.ControlType = acLabel And a.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)

        ElseIf a.ControlType = acLabel And a.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)

 

        End If

    Next

End Sub

 

Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)

    Dim a As Control

    '设置线 (宽度)

    Me.DrawWidth = 12

    '设置线的类型

    Me.DrawStyle = 0

    For Each a In Me.Controls

        If a.ControlType = acTextBox And a.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)

        ElseIf a.ControlType = acTextBox And a.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)

         End If

     Next

 End Sub

 预览报表结果:

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国;

下面进行分组操作:

进入报表设计窗口,点击鼠标右键,

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国

选择排序与分组,选择分组字段,

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国 

报表设计窗口,出现组页眉(货主名称页眉)和组页脚(货主名称页脚),

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国;

货主名称页眉,在这用不到,可设高度为0,或设置属性中的可见属性为否。

既然分组了,得合计数据,例如需合计运货费,在货主名称页脚增加一文本框,文本框中录入“=SUM([运货费]),将文本框与主体节的“运货费”文本框对齐即可。再新增一标签录入“合计”,在适当位置即可。

当然,货主名称页脚也需要画线的,同上在货主名称页脚的FORMAT事件中粘贴画线代码。但货主名称页脚画线会根据主体节的文本框,自动画线对齐,我们只需要增加所要的文本框,与主体节相关文本框适当对齐即可

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国;

报表页脚可参考“货主名称页脚”设置。

预览效果如下:

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国;

加入报表页脚“总计”和“运货费”预览图:

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国;

需注意,组页脚和报表页脚的高度得适当,高度过小,“合计”“总计”行下面的横线会丢失,适当调整高度可解决。

至此报表画线,可一劳永逸了。

报表增加序号、页计、累计、组分页、补空行,可参阅本站相关文章。

附  件:

ACCESS报表画线实例(二)VBA画线 - 海边 - 龙@厦门.福建.中国点击下载此附件


    作者简介:一直用EXCEL做数据处理,在使用的过程中逐渐发现,EXCEL在某些方面的局限性,也使用过VFOX,最终选择了ACCESS,与EXCEL同是OFFICE套件,数据交换很是方便,OFFICE套件使用面广,用ACCESS布署方便,数据处理功能强大,大大提高了工作效率,于是报名ACCESS学习班,得到竹笛和大家的帮助,用ACCESS开发平台做了几个软件用于公司的管理,取得了很好的效果。大家一起努力,共同提高!




Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助