Access交流中心

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

求各位大神看看这个IIF表达式

杨乐  发表于:2018-05-28 16:24:12  
复制

rst![BCJMFY] = Round(IIf(([ZYZFY] - [XNHBCJE] - [QTBCJE]) - (IIf([ZYJBQFX] > 301, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4) > 0), (IIf([ZYJBQFX] > 301, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4)), [ZYZFY] - [XNHBCJE] - [QTBCJE], 2))

各位大神帮忙看看这个函数表达式,一直不对,要求需要有几个数进行对比,然后再根据对比情况来用哪个公式,而且有一项对比要跟IIF表达式的结果时行对比

 

Top
杨乐 发表于:2018-05-29 11:14:57

这个表达式一直报错,这到底是哪里出了问题啊?



黎红军 发表于:2018-05-30 10:26:54

这种复杂的iif,还是用if语句来识别比较好,也方便调试,检查问题。 

这种问题,如果不放上你的库文件,不好帮忙解决。



知足常乐 发表于:2018-05-30 11:29:36
表达式中的那个>0不对吧

知足常乐 发表于:2018-05-30 11:32:41


SiliconXu 发表于:2018-05-30 11:42:19

首先第一印象就是,如果需要用到这么复杂的IIF,是不是得先考虑你的方法是不是有问题?有没有什么其它更好的办法?



杨乐 发表于:2018-05-31 10:20:32

已用IF函数解决,谢谢各位了 

rst.AddNew

    rst!CZY = GetParameter("Current User Username")
    rst![ZBCJE] = Round([XNHBCJE] + [QTBCJE], 2)
    If [ZYJBQFX] < 301 Then
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)
    Else
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)


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