Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]请教交叉查询动态报表问题

五十不学艺  发表于:2012-01-08 10:25:22  
复制

昨天请教动态报表问题,由于示例不清晰,容易让老师误解。

我想根据交叉表查询结果做一动态报表,查询结果的字段是动态的

点击下载此附件

 

Top
蟹仔 发表于:2012-01-08 16:17:37
你这个报表的数据源列数也是动态的。根本没法做成固定格式的报表。你也不是需要经常打印这样的报表,要不你直接打印那个查询记录。要不查询到结果复制到excel后再打印。

五十不学艺 发表于:2012-01-08 16:33:50

我是要做一个动态字段的报表,不是固定格式的报表,

 



蒋元根 发表于:2012-01-08 17:11:36

建议参考网友goto2008 老师发表时间:2011-9-19 9:58:41
【源码共享】灵活多选字段,让报表内容精简!

http://www.accessoft.com/blog/article-show.asp?userid=597&Id=5840

 

 

点击下载此附件

萧云 发表于:2012-01-10 16:49:20

给交叉查询设置动态的条件是可以实现的,会了不难,难了不会,就是这个道理。

你看看示例吧。

 

点击下载此附件

蟹仔 发表于:2012-01-14 17:04:24

楼上那个方法没有达到楼主的要求。看看这个如何,也是用了变通的方法,先建立一个节日奖项的表,再建立一个员工编号。接着报表里面使用大量的dlookup进行定位。如果想进行列宽随着列数改变而变,就要先判断一共有多少列,接着在写代码控制单元格的大小。

点击下载此附件

蟹仔 发表于:2012-01-14 20:03:26
上面那个方法本来想在查询里面添加一个序号的,这样就不需要在窗体里面多加一个列表框,可以直接引用  如:标题A可以改为:DLookUp("节日奖金","tbl节日奖金表","ID=1")字段内容可以改为:DLookUp("节日奖金","tbl节日奖金表","节日奖项='" & A & "' and 职工编号='" & [职工编号] & "'"),有两种方法可以实现,一种是生成一个动态表,表里面添加自动编号,第二种是查询里直接增加序号字段,我已经在模块里面加入了这个函数。不过试了几次都不行。

蟹仔 发表于:2012-01-14 20:40:37
还是利用一个动态表解决算了,这样就不需要增加个列表框,点击下载此附件,不过有个问题,楼主的职工编号有重复了。Z005这个编号曹洁跟陈驰是一样的,所以导致你之前的查询是117条记录,而现在报表里面才113。如果你的数据没错的话,你可以更改下那个叫职工编号的查询,他是报表的数据源。

萧云 发表于:2012-01-15 15:07:41

能过 蟹仔 回复 才知道 楼主在2楼还要求 报表中字段 自动适应 动态交叉查询的查询结果。

 

-.- 这个也比较简单,让报表中的控件自已适配 数据源就可以了。

 

楼主自己 看示例吧,一看代码后,你就全部明白了。(   呵呵,原来如北~~~)  

 

 

点击下载此附件

萧云 发表于:2012-01-15 15:19:42

但通过调试  蟹仔 回复的示例 后,给楼主一个建议:

就是尽量不要使用  DLookUp 宏方法,因为效率很低,在打开如此少的数据时报表显示就如此慢,可见一斑。

(注意:但没有说不让你使用,而是少用。这方面你可以参考一些资料。)

 

 

 



sosopain 发表于:2012-01-25 00:39:40

做交叉查询报表的时侯可以考虑一下用数据透视表做子报表, 这样可以很好的解决,不过排版上就要下点功夫



羽扇子君 发表于:2012-02-25 08:27:30
交叉表查询的结果,生成一个临时表,做为报表的记录源,报表关闭后,再删除临时表.那样的话,报表就好制作了.

总记录:11篇  页次:1/1 9 1 :