回 帖 发 新 帖 刷新版面

主题:if...then ...else  语句错乱???纳闷啊

IF _0384qk.jfbz='已交费' then
。。。。。。
          
 ELSE
。。。。               
    
ENDIF

如上的语句,但是为什么偶尔会出现 _0384jk.jfbz='已交费',但程序却执行了else语句后面的内容!
按目前大概是执行300次,出现一次错误。
为什么会这样?各位老师帮帮看看,谢谢!

回复列表 (共3个回复)

沙发

注意字段中可能有空格:
IF Alltrim(_0384qk.jfbz)='已交费' then
。。。。。。
          
ELSE
。。。。               
    
ENDIF

板凳

谢谢
jfbz字段是字符型,只有6个字节,只能容纳“已交费”或“未交费”,应该是不会有空格
另外我 sele jfbz from a grou by jfbz ,也是只有2条查询结果。

当初jfbz我是用 update a set jfbz='已交费' where bmh in (sele bmh from b) 统一标识的


实在是想不通为什么会出现运行错误的情况

3 楼

这个问题很简单
在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)


至于问题产生的原因,实在是太多了,我也不想去猜测了,你自己想像吧。

我来回复

您尚未登录,请登录后再回复。点此登录或注册