Access交流中心

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

如何判断控件的值的数据类型?

yuayua  发表于:2010-08-28 09:51:35  
复制

当运行一个计算的时候,TEXT1*TEXT2
TEXT2里面的值有时候是数字,有时候是文本
当是文本的时候,计算将会出现类型不匹配的情况
如何在计算之前判断这个TEXT2里的值是否为数字?如果不是数字,则TEXT1*0
(不能直接将TEXT2值改变)
请高手指点,谢谢!

 

Top
王震 发表于:2010-08-28 10:51:45
用一下TEXT1*nz(TEXT2),试一下

yuayua 发表于:2010-08-28 11:18:28

不行,NZ只能判断值为NULL的时候返回一个值,试验了,仍然报错数据类型不匹配



大肚秃秃 发表于:2010-08-28 13:49:50

求出TEXT2长度 L=Len(Me.Text2)

用ASC判断字符值(是否为0~9)

For i=1 to l

   T=Asc(Mid(Me.Text2,i,1))

   IF T<48 And T>57 Then

      Me.Text2=0

      Exit Sub

   End if

Next

G=Me.Text1*Me.Text2



wang decheng 发表于:2010-08-28 14:01:02

使用IsNumeric 函数如何?

       

返回 Boolean 值,指出表达式的运算结果是否为数。

语法

IsNumeric(expression)

必要的 expression 参数是一个 Variant,包含数值表达式字符串表达式

说明

如果整个 expression 的运算结果为数字,则 IsNumeric 返回 True;否则返回 False

如果 expression日期表达式,则 IsNumeric 返回 False



大肚秃秃 发表于:2010-08-28 14:48:24

另一法:

Me.Text4 = Me.Text1 * IIf(IsNumeric(Me.Text2) = False, 0, Me.Text2)



yuayua 发表于:2010-09-02 14:37:18

问题解决,谢谢



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