Access交流中心

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

[5分]IIF

菜鸟  发表于:2013-11-18 13:47:17  
复制

点击下载此附件

我要查询--》结果--》》取值:增加:IIf([取最小值]=900 And [取最大值]=1700,7, 为什么不行呢,弹出太复杂,iif有限制的吗?



取值: IIf([取最小值]=830 And [取最大值]=1230,4,IIf([取最小值]=800 And [取最大值]=1700,7,IIf([取最小值]=830 And [取最大值]=1730,8,IIf([取最小值]=830 And [取最大值]=1800,8.5,IIf([取最小值]=830 And [取最大值]=1830,9,IIf([取最小值]=830 And [取最大值]=1900,9.5,IIf([取最小值]=830 And [取最大值]=2100,11,IIf([取最小值]=900 And [取最大值]=1700,7,IIf([取最小值]=900 And [取最大值]=1730,7.5,IIf([取最小值]=900 And [取最大值]=1800,8,IIf([取最小值]=900 And [取最大值]=1830,8.5,IIf([取最小值]=900 And [取最大值]=1900,9,IIf([取最小值]=900 And [取最大值]=2100,10.5,IIf([取最小值]=1330 And [取最大值]=1730,4,IIf([取最小值]=1330 And [取最大值]=1900,5.5,0)))))))))))))))


 

Top
杜超-2号 发表于:2013-11-18 13:51:41

太复杂了,改用select case

Select Case与Elseif用法示例-入门篇[Access软件网]
http://www.accessoft.com/article-show.asp?id=8114

 



菜鸟 发表于:2013-11-18 14:16:16

怎么用?那个查询哦,不是窗体

 



瞿丽忠 发表于:2013-11-18 15:16:37

增加一个辅助查询表



瞿丽忠 发表于:2013-11-18 15:18:19

取最小值       取最大值        值

830               1230            4

900               1700           7

。。。。。。。。



123木头人 发表于:2013-11-18 15:43:07

IIF只适合一个条件,建议你变通试一下:

 IIf([取最小值]=830,iif([取最大值]=1230,4,0),IIf([取最小值]=800,iif([取最大值]=1700,7,0))

但是我建议你把你的数据和你想要实现的目的贴出来,也许同学们会有更好的解决办法。



菜鸟 发表于:2013-11-18 16:54:02
    我是想根据不同的时间,取不同的值

落尘_小新 发表于:2013-11-18 18:26:10
你可以分解你的IIF为几段.然后分别建几个查询来实现.

菜鸟 发表于:2013-11-19 08:49:41

分为几段就不能做成我想要的效果了

 



叶海峰 发表于:2013-11-19 09:03:18
何不自定义一个函数,然后在查询里面调用这个函数呢?

菜鸟 发表于:2013-11-19 09:09:02

高手,能否指点一下呀,这个不熟呀!谢谢!



lmqlt 发表于:2013-12-18 23:06:00
点击下载此附件
Function cxkq(time1 As String, time2 As String) As String
'这里设置好不同情况,考勤所得分值。在查询里直接调用程序
'如 cxkq([取最小值],[取最大值]),当值为830和1230时,查询结果为4


If time1 = 830 And time2 = 1230 Then
     cxkq = 4
ElseIf time1 = 800 And time2 = 1700 Then
     cxkq = 7
ElseIf time1 = 830 And time2 = 1730 Then
    cxkq = 8
ElseIf time1 = 830 And time2 = 1800 Then
    cxkq = 8.5
ElseIf time1 = 830 And time2 = 1830 Then
    cxkq = 9
ElseIf time1 = 830 And time2 = 1900 Then
    cxkq = 9.5
ElseIf time1 = 830 And time2 = 2100 Then
    cxkq = 11
ElseIf time1 = 900 And time2 = 1700 Then
    cxkq = 7
ElseIf time1 = 900 And time2 = 1730 Then
    cxkq = 7.5
ElseIf time1 = 900 And time2 = 1800 Then
    cxkq = 8
ElseIf time1 = 900 And time2 = 1830 Then
    cxkq = 8.5
ElseIf time1 = 900 And time2 = 1900 Then
    cxkq = 9
ElseIf time1 = 900 And time2 = 2100 Then
    cxkq = 10.5
ElseIf time1 = 1330 And time2 = 1730 Then
    cxkq = 4
ElseIf time1 = 1330 And time2 = 1900 Then
    cxkq = 5.5
End If
        
End Function

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