以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 求助关于dr("列名")判断 偶尔失灵,有没有更稳定的方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88541)

--  作者:zhengboxin
--  发布时间:2016/8/4 17:03:00
--  [求助] 求助关于dr("列名")判断 偶尔失灵,有没有更稳定的方法

在窗体表中,我用    Tables("").fill(""),"外部数据源",True) 加载了表,外部数据源是 SQL 2008 R2

在保存的时候我用到了下面的公式以及if 判断

 if dr("YZTJ")<>0 then

XXH=Format(CInt(dr("XH"))+1+dr("YZTJ"),"000")

else

XXH=Format(CInt(dr("XH"))+1,"000")

END IF

 

上面的公式偶尔会出现dr("YZTJ")这个不计算,也就是明明不是0,结果却是0,也可能是if dr("YZTJ")<>0 这个判断失效了,总之就是dr("YZTJ")=0了

 

举个列子:

 

XH=001    ,YZTJ 字段类型是int,值为2

 

正常情况下上面公式的结果应该是004吧,但是偶尔结果会变成002,概率很小,也就是dr("YZTJ")这个系统算成0了,没有参与计算或者应该是直接执行else语句去了

 

请教一下各位老师,上面的if 判断有没有更好的方法,万分感谢

[此贴子已经被作者于2016/8/4 17:08:35编辑过]

--  作者:大红袍
--  发布时间:2016/8/4 17:36:00
--  
 代码没问题的,这个判断没问题。