以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助][分享]请问如何判断一个table的内容是否为空?-已解决  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41789)

--  作者:magicat
--  发布时间:2013/10/27 21:15:00
--  [求助][分享]请问如何判断一个table的内容是否为空?-已解决

已建立一个根据文本框模糊搜素的table,现在需要在该table中的current行中提取数据。

但问题是:

 

如果没有满足搜索条件的行,table中将无内容显示,程序报错。

 

初步判断是因为table内容为空,没有current行,导致无法提取到有效的数据。

现在打算添加一条判断,如果table中没有内容,将不再提取数据。请问各位大侠,我该如何做呢?

在下先谢谢啦!

[此贴子已经被作者于2013-10-30 0:01:46编辑过]

--  作者:lsy
--  发布时间:2013/10/27 21:26:00
--  

IF Tables("XXX").Current IsNot Nothing Then

    \'提取数据

End If


--  作者:magicat
--  发布时间:2013/10/27 21:33:00
--  

问题已经解决!

从帮助文件中找到列子:

 

If Tables("订单").Current IsNot Nothing Then
Output.Show(
Tables("订单").Current("客户"
))
End If

 

提醒大家注意一点:

在定义变量的时候我写了

 

Dim str As String = Tables("详细信息_查询表").current("名称")

 

程序同样提示出错,因为在判断table是否为空之前,已经使用了current行。

把程序改为:

 

Dim str As String

if Tables("详细信息_查询表").current("名称") is not nothing then

    str = Tables("详细信息_查询表").current("名称")

end if

 

这样就没有问题了!

 


--  作者:有点甜
--  发布时间:2013/10/27 21:36:00
--  
 判断某列为空,最好用isnull


--  作者:swaterj
--  发布时间:2013/10/27 21:36:00
--  
 Dim str As String = Tables("详细信息_查询表").current("名称") 


当然是错的,当前行的类型必须是 row 才可以,

dim str as row =
Tables("详细信息_查询表").current("名称")

这样写就不会错了

--  作者:magicat
--  发布时间:2013/10/27 21:39:00
--  

我是要提取当前行“名称”列的内容

如果是row类型的话,就不能加(”名称“)了


--  作者:有点甜
--  发布时间:2013/10/27 21:44:00
--  
用 if Tables("详细信息_查询表").current.isnull("名称") = false then
--  作者:swaterj
--  发布时间:2013/10/27 21:45:00
--  
 嗯,对的。看错了,哈哈...
[此贴子已经被作者于2013-10-27 21:45:17编辑过]