Access交流中心

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

关于报表控件不重复的设置问题

黄天当立  发表于:2012-03-02 21:28:37  
复制

基表为人口(记录数1000+),主键为身份证号,现想对其中的性别,省份区域的人口数做类似于EXCEL二维表格的统计。即:

     华北   华南   华东   东北

男   100

女   159    ...

目前我将报表记录源设置为“人口”,添加文本框控件(记录源为性别字段),然后在页眉部分添上“华北”、“华南”等标签创造出二维表格的形式,在数字部分利用dcount函数统计记录数。

此时的报表,将显示全部1000+的记录,即男、女、男、男、女、女……

我搜索过该问题,网上回复的是将控件的隐藏重复控件”属性设置为yes,试过后发现并未全部隐藏,只是在连续性别时只显示第一个,而且隐藏部分的”节“并不删除。即 男、女、男、__、女、__、男……形式。报表的篇幅很长很长。

请问各位大侠,如何设置报表,以实现如excel二维表格一样的统计报表,而且控件仅显示distinct值。

 

Top
wsl 发表于:2012-03-02 22:51:22

看看是不是你想要的。

 


点击下载此附件

 

先基于人口表做个以性别为行标题,以省份区域为列标题,统计身份证号总个数的交叉表查询,用这个查询作为报表的记录源。



黄天当立 发表于:2012-03-03 16:30:16

wsl大侠的例子利用自连接的形式创建了新的查询,方法很巧妙。

但可是是我的格式示例不详尽,可以利用数据表的创建了excel二维表格的形式,建立报表。可如何我要将区域字段按省份进行分组呢?

即模拟二维表格格式的报表(表格边界省略)扩充为:

        华北             华南              华东          东北            华中

     河北  北京      广东 广西 海南   上海 浙江    辽宁 吉林 黑龙江   湖北 湖南

男   100          

女   159    ...

又如何建立报表呢?

请指教?



wsl 发表于:2012-03-03 18:25:31

 

要是这个报表的格式如行标题、列标题都固定好了,那报表就不用设记录源了。

 

你的表只有两行记录(男、女,这男、女直接用标签显示就行了),在这两行记录中加入文本框控件,控件的记录源用Dcount函数统计满足性别和省份的身份证号总数。



羽扇子君 发表于:2012-03-06 20:07:42

涉及到动态报表,大致步骤如下:

1.报表设置为通用报表格式:

a.页面页眉 节上置放大约21个标签,主体节上放置同等数量的文本框;

b.命名遵循流水号:标签:Label0,Label1……,文本框:Text0,Text1……;

 

2.得出报表记录源的字段(交叉表查询的列标题):

a.利用生成表查询,得到一个报表记录源的字段名(交叉表查询的列标题)的临时表(按地区、省区排序);

b.利用DAO(或ADO)读出临时表的内容(字段名);

c.为报表的标签(Label0,Label1……)赋标题(Caption)属性,为文本框(Text0,Text1……)赋控件来源(ControlSource)属性;

d.设置好各控件的宽度(Width),左边距(Left),显示格式(Format),及空闲控件的可见性属性(Visible)

e.删除临时表

……

如果想推而广之,则配合报表的OpenArgs属性,即可做成通用型报表.



在水一方 发表于:2012-03-06 20:35:05
交叉表生成动态报表的例子,参考一下http://www.accessoft.com/article-show.asp?id=6213

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