Access交流中心

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

关于在表中生成起始页和止页的问题

陈玉才  发表于:2010-09-26 14:48:37  
复制

我想实现下面的功能

 

起始页为1,如果(班级名称之计数/基数)>1则止页为2

下面一行的始业就为3,以此类推

 

请问下我该如何实现这个功能

 

 

点击下载此附件

 

Top
煮江品茶 发表于:2010-09-26 15:50:38
用int函数和mod运算符计算一下即可

陈玉才 发表于:2010-09-26 17:23:20

请仔细看下我的问题,我要实现的功能是:

 

起始页为1,如果(班级名称之计数/基数)>1则止页为2

下面一行的始业就为3,以此类推

 

你说的只能在1和2之间循环,我想要是在报表中自动识别起始页和结束页,以基数为基准,如何达不到基数也算是一页,如果大于基数就是两页,而且下一行产生的数据是在上一行数据产生的基础上产生的。



陈玉才 发表于:2010-09-27 08:37:13

昨天仔细学习了二楼的建议,觉得自己有点不对的地方,不过还是没能做出来,

能不能请二楼的给指点下?



煮江品茶 发表于:2010-09-27 09:29:36

1、在查询设计中可先进行页数的计算:
Int([班级名称之计数]/[基数])+IIf([班级名称之计数]=0,0,1) AS 页数


2、由此可以计算止页:
DSum("Int([班级名称之计数]/[基数])+IIf([班级名称之计数]=0,0,1)","班级人数查询","ID<=" & [ID]) AS 止页


3、最后计算始页:
[止页]-[页数]+1 AS 始页

 

所以可写出如下查询:
SELECT ID, 年级, 班级名称, 班级名称之计数, 基数, 结果, DSum("Int([班级名称之计数]/[基数])+IIf([班级名称之计数]=0,0,1)","班级人数查询","ID<=" & [ID]) AS 止页, Int([班级名称之计数]/[基数])+IIf([班级名称之计数]=0,0,1) AS 页数, [止页]-[页数]+1 AS 始页
FROM 班级人数查询;

 

 

点击下载此附件

陈玉才 发表于:2010-09-27 17:11:18

还有一个问题,这个方法为什么不能用聚合函数

 

点击下载此附件

你看我的总表中要按照年级来分别做目录



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