以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎样删除表中的空白行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=613)

--  作者:cowpoke
--  发布时间:2008/9/19 15:47:00
--  怎样删除表中的空白行?
如题
--  作者:cowpoke
--  发布时间:2008/9/19 16:39:00
--  
真得下功夫呢,光删除空白行就有这么多内容.
谢谢
--  作者:贺老六
--  发布时间:2008/9/19 16:43:00
--  
 标准答案:

 

Dim Filter As String

For Each dc As DataCol In DataTables("表A").DataCols

    If Filter > "" Then

        Filter = Filter & " And "

    End If

    Filter = Filter & dc.Name & " Is Null"

Next

DataTables("表A").DeleteFor(Filter)
[此贴子已经被作者于2008-9-19 16:45:28编辑过]

--  作者:kylin
--  发布时间:2008/9/19 17:11:00
--  
以下是引用贺老六在2008-9-19 16:43:00的发言:
 标准答案:

 

Dim Filter As String

For Each dc As DataCol In DataTables("表A").DataCols

    If Filter > "" Then

        Filter = Filter & " And "

    End If

    Filter = Filter & dc.Name & " Is Null"

Next

DataTables("表A").DeleteFor(Filter)
[此贴子已经被作者于2008-9-19 16:45:28编辑过]

谢谢!


--  作者:cowpoke
--  发布时间:2008/9/19 17:36:00
--  

有点云里雾里,留等以后慢慢消化


--  作者:kylin
--  发布时间:2008/9/19 18:03:00
--  

意思很明显
空白行=这行的每一列都为空的情况
4楼的代码,就是遍历每一列后得出DeleteFor() 方法的条件Filter
--  作者:狐孩儿
--  发布时间:2008/9/19 18:32:00
--  
以下是引用贺老六在2008-9-19 16:43:00的发言:
 标准答案:

Dim Filter As String

For Each dc As DataCol In DataTables("表A").DataCols

    If Filter > "" Then

        Filter = Filter & " And "

    End If

    Filter = Filter & dc.Name & " Is Null"

Next

DataTables("表A").DeleteFor(Filter)
[此贴子已经被作者于2008-9-19 16:45:28编辑过]

呵呵,站在巨人肩上,精简些:
Dim Filter As String
For Each dc As DataCol In DataTables("表A").DataCols
  Filter = Filter & " and " & dc.Name & " Is Null"
Next
DataTables("表A").DeleteFor(Filter.SubString(5))


--  作者:czy
--  发布时间:2008/9/19 19:44:00
--  
以下是引用狐孩儿在2008-9-19 18:32:00的发言:

呵呵,站在巨人肩上,精简些:
Dim Filter As String
For Each dc As DataCol In DataTables("表A").DataCols
  Filter = Filter & " and " & dc.Name & " Is Null"
Next
DataTables("表A").DeleteFor(Filter.SubString(5))


能如此活用SubString,你就是巨人,给你加精。


--  作者:smileboy
--  发布时间:2008/9/19 21:08:00
--  
以下是引用狐孩儿在2008-9-19 18:32:00的发言:

呵呵,站在巨人肩上,精简些:
Dim Filter As String
For Each dc As DataCol In DataTables("表A").DataCols
  Filter = Filter & " and " & dc.Name & " Is Null"
Next
DataTables("表A").DeleteFor(Filter.SubString(5))

闭关多日终于出关了,又看到了易表中mid结合eval语句的影子。

[此贴子已经被作者于2008-10-14 8:34:34编辑过]

--  作者:小狐
--  发布时间:2008/9/19 22:10:00
--  

高啊.
这里目的就是“指针”走过每一列,让Filter得出“字段1 is null and 字段2 is null and 字段3 is null......."这样的字符.
然后deletefor(filter) 就是deletefor(字段1 is null and 字段2 is null and 字段3 is null......)统一 一次性的每列都等于null的行 

[此贴子已经被作者于2008-9-19 22:10:39编辑过]