Access交流中心

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

access2010查询中iif为何用了两三次就会变慢,有什么解决办法?

xdyjhdd  发表于:2014-12-09 13:31:38  
复制

金额: IIf([排名]>=1 And [排名]<=6,300,IIf([排名]>=7 And [排名]<=12,200,IIf([排名]>=13 And [排名]<=16,100,0)))

 

Top
朱先生 发表于:2014-12-09 14:05:35
SELECT 表2.排名, IIf([排名]<=6,300,IIf([排名]>=7 And [排名]<=12,200,100)) AS 金额
FROM 表2;




煮江品茶 发表于:2014-12-10 11:11:52
将标准放入一张数据表中,然后用dlookup引用。

xdyjhdd 发表于:2014-12-10 15:37:37
我用dlookup为何提示:数据库引擎不能将“[名次]”识别为一个有效的名或表达式

朱先生 发表于:2014-12-10 15:49:33

原来用的是排名,现在用名次

字段名改成名次了吗?




xdyjhdd 发表于:2014-12-10 16:44:02
dlookup一次只能处理一个,不能处理一个表中的所有字段

朱先生 发表于:2014-12-10 17:12:04
和二楼讨论

cspa 发表于:2014-12-12 09:19:00

Select Case [排名]

        Case 1 To 6
            金额 = 300
        Case 7 To 12
            金额 = 200
        Case 13 To 16
            金额 = 100

        Case else

            金额 = 0
    End Select



xdyjhdd 发表于:2014-12-15 08:07:32
在查询时单独用时,iif没有问题的,速度还可以。但结合排名函数使用后就不行了,速度好慢,根本打不开。

煮江品茶 发表于:2014-12-16 10:35:44

标准表:
标准ID 下限 上限 金额
1          1      6   300
2          7     12  200
3         13    16  100

 

select *,dlookup("金额","标准表","下限<=" & [排名] & " and 上限>=" & [排名]) as 金额
from 阁下的表名称

where 排名<=dmax("上限","标准表")



麥田 发表于:2014-12-16 16:16:13

【Access小品】朝令夕改--为何查询中不建议用Iif[Access软件网]
http://www.accessoft.com/article-show.asp?id=9826


xdyjhdd 发表于:2014-12-17 08:37:30
9楼和10楼的很好用,我也做过了,全能实现。但问题没有解决。我的问题是这样的:学期的班级排名是每月排名分类汇总计算得来的,然后再对汇总的排名进行排序,最后对排序进行发奖金,排序中我用了DCount,速度正常,再加上dlookup或者IIf就不能打开ACCESS了。(单独用dlookup、IIF是没有问题的,速度也是正常的),不知有什么高招能帮我解决这个问题。谢谢指导!!!

煮江品茶 发表于:2014-12-17 14:03:15

查询结果导入临时表再dlookup即可



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