以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  怎么判断无返回记录的值?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=168782)

--  作者:hitzfeld
--  发布时间:2021/5/23 15:45:00
--  怎么判断无返回记录的值?
Dim Sum1 As Integer = DataTables("生产表").Compute("Sum(已生产数量)", "单号 = \'"& x &"\'")
If sum1="" Then 

当生产表中不存在符合条件的记录的时候,报错。
If sum1 is nothing
If sum1 isnull
都试过了,都是报错........
要怎么判断啊??求老师指点


--  作者:cnsjroom
--  发布时间:2021/5/23 17:49:00
--  回复:(hitzfeld)怎么判断无返回记录的值?
Dim Sum1 As Integer  这个地方都定义为整数了   
那试一试  if sum1=0 then

--  作者:hitzfeld
--  发布时间:2021/5/23 20:35:00
--  
以下是引用cnsjroom在2021/5/23 17:49:00的发言:
Dim Sum1 As Integer  这个地方都定义为整数了   
那试一试  if sum1=0 then

cnsjroom老师好,不是这个意思,您写的也是错的,其实问题是出在“生产表”不存在复合条件为单号=x的记录会报错,如果有记录,后面的代码就没问题了。我的难点也在这里,怎么判断是否存在记录?


--  作者:有点蓝
--  发布时间:2021/5/23 21:23:00
--  
if sum1=0 then虽然不能判断是否有记录,但是不可能会报错,如果报错,那是其它地方的问题

可以这样判断一下
if DataTables("生产表").Compute("count(单号)", "单号 = \'" & x & "\'") =0 then
msgbox("无记录")
else
msgbox("有记录")
Dim Sum1 As Integer = DataTables("生产表").Compute("Sum(已生产数量)", "单号 = \'"& x &"\'")
其它处理
endif

--  作者:hitzfeld
--  发布时间:2021/5/24 22:18:00
--  
谢谢蓝老师,这样确实不会报错,但是我后还有个引用sum1数值判断的时候就报错了
比如if sum1>xx then 由于sum1是个空值,所以报错。
您改的代码可以用!谢谢您的指点!

--  作者:tommargq2
--  发布时间:2021/5/25 9:03:00
--  

在判断结束的处理中强制给sum1=0

[此贴子已经被作者于2021/5/25 9:03:54编辑过]