Access交流中心

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

请问一下select case 的用法

wang decheng  发表于:2009-09-15 22:00:29  
复制

点击下载此附件

 

组合框“操作”的afterupdate时间,我有一段select case 的判断(选择镜片直径),可是怎么弄都不成功;第一个case 完了以后就再也不继续了,直径35以上的就报错。

请高手帮帮忙

 

Top
乔峰 发表于:2009-09-18 10:03:57

"diameter", "tuzibh"

 

没有这个字段 ,也没这个表?



wang decheng 发表于:2009-09-18 14:10:03

这个表(tuzibh)是存在的,其中有diameter字段。这个表和字段在此无关紧要。发帖时老是发不上来,考虑文件太大,故删除了这个表。



trynew 发表于:2009-09-18 15:55:32

你这主要是把 Select case 语句当作是 IF Else 语句了。case后面要跟一个表示范围的值或多个单独值,不是一个逻辑判断式,不能再包含第一句中的变量t。要改成:

                    Select Case t
                    Case Is <= 35
                    Me.gz = 0.03 * Me.数量
                    Case 36 to 71-0.000001
                    Me.gz = 0.06 * Me.数量
                    Case 71 to 100-0.000001

                    Me.gz = 0.1 * Me.数量
                    Case IS  >= 100
                    Me.gz = 0.15 * Me.数量
                    Case Else
                    MsgBox ("直径不对!")
                    End Select

如果是一个逻辑表达式的话,他会根据判断结果当作是0或-1的,因此下面的语句:

           Select Case l
           Case l = False

                。。。。
           Case l = True

                。。。。
           End Select

无论l 是什么值,都是执行第二句的。



wang decheng 发表于:2009-09-18 16:04:34
大佬,请问71-0.000001是什么意思啊?惭愧不知道;下面100-0.000001也是

trynew 发表于:2009-09-22 08:33:18

36 to 71-0.000001相当于 >=36 and <71,0.000001表示一个很小的数。在查询中的between...And ...也有时用到这种方式表示>或<。

你的程序中错在Case后是不需要再包含判断变量而已。



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