Access交流中心

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

Access查询以往最大值

一牧歌  发表于:2020-10-15 22:14:48  
复制

Access查询中遇到一个难题,请教各位高手,万分感谢!

见图表1,每启动一次数据往上升,停止后回到0,为了观察每次上升数值距以往最大值的变化情况,离以往最大值还差多少?超过以往最大值多少,每行记录都显示,一目了然。需要自定义一个函数来求得以往最大值,这函数需要应用到表中的字段“以往最大值”,函数的最好表达式为:以往最大值(字段名,表名,起始ID),本例表达为:以往最大值([数值],表1,1),起始ID为数字型。如果能用很简单的办法解决更好。

 

Top
欧志华 发表于:2020-10-16 08:59:28

使用Dlookup函数

DLookup用法示例
http://www.accessoft.com/article-show.asp?id=662
 



一牧歌 发表于:2020-10-16 09:14:19

补充说明:

就好像涨潮读数一样,

每次潮涨数值是慢慢上升的,退潮结束后会回到起点0,
我们需要观察的是潮已经接近破记录(也就是以往最大值)是多少?和打破记录多少?

请注意当前最大值和以往最大值的区别,因为以往潮涨高度(以往最大值)是不包括本次潮涨任何高度(当前最大值)的。
点击下载此附件




一牧歌 发表于:2020-10-16 09:20:01
从ID5743起至5748的显示以往最大值应该全是19才对。

仙来 发表于:2020-10-16 10:42:26
你的当前,指id从哪到哪,如果数据增加了呢。

一牧歌 发表于:2020-10-16 11:06:32
以往最大值包括所有以前的(<本次从数值0开始的ID)数据里的最大值,数据增加后处理同理。

一牧歌 发表于:2020-10-16 11:37:38

有朋友给出了解决方案,但很不理想,虽然能达到结果,但运行时间太长太长,无法接受。

大家可以运行一下查询2试试,运行结果除最前面6条记录无数据外,运行结果还是对的。点击下载此附件



一牧歌 发表于:2020-10-19 22:52:23

一个简单的问题就真的很难解决吗?

离打破记录还差多少?打破了以前最高记录超越了多少?就这么简单的问题,难道就真无人能解吗?

哪位高手来发表下意见,谢了!



仙来 发表于:2020-10-21 15:32:19
会者不难,难者不会。用了自函数。点击下载此附件

一牧歌 发表于:2020-10-21 19:37:11
楼上的朋友,谢谢你的劳动和回复,但你还是错了,这问题没有想像的哪么简单。红标出来的位置应该仍然是6才对,对于本次的冲击来说,以往最高记录应该是6,出现红标处的只不是已经破了记录而已,对于本次冲击并没有结束,所以新的最高记录还不能下结论。譬如以往撑杆跳高最高记录是4.5M,现在有在撑杆跳高已经达到4.6M,但并没有开始下落,还在继续往上升,记录值一在上升:4.7M, 4.8M, 4.9M,我们只能说打破以往记录的4.5M了,已经超越以往最高记录:0.1M,0.2M,0.3M,0.4M啦!对于本次冲击并没有结束,所以新的最高记录还不能下结论,更不能说这人本次撑杆跳高连续打破了自己N次记录。

西出阳关无故人 发表于:2020-10-23 19:34:49

把8楼的函数改一下,就可以了:

Public Function ZMAX(fld As String, tbl As String, rID As Integer)
    Dim maxZid As Long
    maxZid = Nz(DMax("id", tbl, "id<=" & rID & " and 数值=0"), 0)
    ZMAX = DMax(fld, tbl, "id<=" & maxZid)
End Function




一牧歌 发表于:2020-10-24 08:32:30
非常感谢“西出阳关无故人”的出手,你太高大了!

一牧歌 发表于:2020-10-24 09:45:25
已经受益匪浅,对此表示尊敬的感谢。
因本人学识非常浅溥,没能力修改函数成为通用,你有空的话,能不能帮我把这函数中两个参数设置为可以自定义的变量?给你添麻烦了。
也就是表名(表1)和被统计的字段(数值)可以随意指定。


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