主题:if...then ...else 语句错乱???纳闷啊
coffeenight
[专家分:230] 发布于 2011-11-10 18:01:00
IF _0384qk.jfbz='已交费' then
。。。。。。
ELSE
。。。。
ENDIF
如上的语句,但是为什么偶尔会出现 _0384jk.jfbz='已交费',但程序却执行了else语句后面的内容!
按目前大概是执行300次,出现一次错误。
为什么会这样?各位老师帮帮看看,谢谢!
回复列表 (共3个回复)
沙发
qjbzjp [专家分:8830] 发布于 2011-11-10 20:03:00
注意字段中可能有空格:
IF Alltrim(_0384qk.jfbz)='已交费' then
。。。。。。
ELSE
。。。。
ENDIF
板凳
coffeenight [专家分:230] 发布于 2011-11-10 20:41:00
谢谢
jfbz字段是字符型,只有6个字节,只能容纳“已交费”或“未交费”,应该是不会有空格
另外我 sele jfbz from a grou by jfbz ,也是只有2条查询结果。
当初jfbz我是用 update a set jfbz='已交费' where bmh in (sele bmh from b) 统一标识的
实在是想不通为什么会出现运行错误的情况
3 楼
moz [专家分:37620] 发布于 2011-11-11 00:01:00
这个问题很简单
在ELSE的代码里加几句:
messagebox("("+_0384qk.jfbz+")")
messagebox(len(_0384qk.jfbz))
messagebox(_0384qk.jfbz="已交费")
messagebox(_0384qk.jfbz="已")
如果不想中断程序运行,也可以写入文件去,有时间的时候检查一下:
strtofile(ttoc(datetime())+"<"+_0384qk.jfbz+">"+chr(13)+chr(10),"C:\出错记录.txt",1)
至于问题产生的原因,实在是太多了,我也不想去猜测了,你自己想像吧。
我来回复