Office中国论坛/Access中国论坛

标题: Access挑战Excel第十四期:报表打印 [打印本页]

作者: roych    时间: 2016-4-5 11:02
标题: Access挑战Excel第十四期:报表打印
本帖最后由 roych 于 2016-4-6 00:01 编辑

Access的报表素以不够人性化而备受诟病,以此来挑战Excel似乎是在找虐。不过,真的完全被碾压吗?请看图:[attach]58662[/attach]
主数据、明细数据分别展示,条理清晰,当然,这里没有加上格子、补空行等技巧。不过这个报表不能算太烂吧?


[attach]58663[/attach]
对了,除了一个OpenReport宏之外,这里仍然没有用任何VBA代码。
事实上,高级报表,完全可以通过宏的条件以及窗体控件的选择来精细化展现。例如,显示哪些日期范围,购买了什么商品,哪几个地区的客户订单信息等等。当然,过于复杂的条件宏,对于大多数新手来说,可能难度太大,这里暂不做展示。
---------------------------------------------------------------------------------------------------------------
Excel参考思路(任选1):
1、主体数据部分可以用vlookup来完成,明细部分则使用index+match+small+row等数组来查询【必要的话,可以考虑定义动态数据列】。
2、如果用VBA,则推荐使用ADO。当然,也可以用数组的filter来完成。

作者: tmtony    时间: 2016-4-5 11:04
以己之长
作者: pureshadow    时间: 2016-4-5 19:14
第十题我还没出手呢
作者: pureshadow    时间: 2016-4-5 19:15
还有你那个级联菜单,我到现在都没做出来,简单在哪里了,能算Access优吗?
作者: pureshadow    时间: 2016-4-5 19:16
算了,我要到周末才有时间,平时就由你们折腾吧。
作者: purplerose    时间: 2016-4-5 20:40
报表设计的挺不错的,表头和表体清晰可见,赞一个, ROYCH 历害呀!^-^
作者: roych    时间: 2016-4-6 02:39
pureshadow 发表于 2016-4-5 19:15
还有你那个级联菜单,我到现在都没做出来,简单在哪里了,能算Access优吗?

Access不是很难啊。基本都是在行来源里设置好数据源再加上一句刷新下一级菜单的语句就好了:
[attach]58677[/attach]
然后选择“汇总”就基本搞定重复值了【默认是分组的】。
[attach]58681[/attach]
对于二级、三级菜单均按上述方法,不同的是需要使用条件【条件可以右击,选择“生成器”,依次展开窗体,加载的窗体,双击控件名即可】:
[attach]58679[/attach]
最后就是增加刷新下一级菜单的语句【在更改事件的编辑状体下(也可以在更新后事件上)进入VBE界面,应该是可以智能提示的】:
[attach]58680[/attach]


作者: pureshadow    时间: 2016-4-10 09:57
谢谢Roy,我再折腾一下
作者: pureshadow    时间: 2016-4-10 09:58
关于这一期嘛,我的Excel别的没学好,就是上次和朱同学PK了一下,把查找这块学好了,嘿嘿……
作者: pureshadow    时间: 2016-4-10 10:05
不过,很良心地说,这样的报表如果数据量少,Access并无太多优势,如果数据一多,Excel就牺牺了。

但这是多表查询,如果只有一个表的话,Excel2013以上版本的切片器,也可以把Access欺负得死死的。

作者: 纸鸽    时间: 2016-4-10 10:22
pureshadow 发表于 2016-4-10 10:05
不过,很良心地说,这样的报表如果数据量少,Access并无太多优势,如果数据一多,Excel就牺牺了。

但这 ...

多表可以这么搞

  1. select BLR.摆擂人ID as 摆擂人ID,摆擂人,精通技能,辅助技能,擂台赛,比赛结果,版本说明,序号 from [摆擂人信息$] as BLR,[比赛结果$] as BS where BLR.摆擂人ID = BS.摆擂人ID
复制代码


然后切片器
作者: pureshadow    时间: 2016-4-10 10:29
另外,Roy,这PK结果怎么都是Access优啊,你出来一下,我得跟你谈谈……
作者: roych    时间: 2016-4-10 10:54
pureshadow 发表于 2016-4-10 10:29
另外,Roy,这PK结果怎么都是Access优啊,你出来一下,我得跟你谈谈……

因为我也懂Excel,知道Excel的软肋在哪里。O(∩_∩)O哈哈~
切片器确实是Excel的强大武器,不过一旦条件较多的时候,不见得能够打败Access,各种控件,再加上宏就可以做一个灰常专业的报表。不过需要时间,所以嘛,等我忙完手头上这个项目再说。
作者: jlf001    时间: 2016-4-10 13:40
学习
作者: pureshadow    时间: 2016-4-15 16:09
总算对Access有点摸到门了,在没有骚扰Roy的前提下,自己折腾出了一个.
不过还是有个疑问,在进行了第一次查询以后,一定要把报表关闭进行下一次查询结果才正确,这个是不是哪里又有什么关节啊?
作者: roych    时间: 2016-4-15 17:02
pureshadow 发表于 2016-4-15 16:09
总算对Access有点摸到门了,在没有骚扰Roy的前提下,自己折腾出了一个.
不过还是有个疑问,在进行了第一 ...

报表的数据是静态的,打开后就不能刷新了。这一点跟窗体是不同的。
也就是胡搜,在打开之前,就应该处理好数据源的问题。
作者: pureshadow    时间: 2016-4-15 17:11
哦,明白了,谢谢Roy.
真心觉得,如果遇到这样的问题,用Excel十几分钟就搞定了,Access要弄两个下午,诶……心都累啊……




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3