以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字符与字符的连接  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=14431)

--  作者:kevin
--  发布时间:2011/11/18 20:58:00
--  字符与字符的连接

表中分别有 第一列、第二列、第三列、第四列、第五列;

 

要将 第一列、第二列、第三列、第四列、第五列里的内容以:“第一列/第二列/第三列/第四列/第五列” 形式连接起来(例如其中某列没有内容,则不连接它)


--  作者:czy
--  发布时间:2011/11/18 21:10:00
--  
Dim r As Row = Tables("表A").Current
Dim s As String
For Each c As Col In Tables("表A").Cols
    If c.Name <> "第十列" Then
        s = s & r(c.Name) & "\\"
    End If
Next
r("第十列") = s

--  作者:czy
--  发布时间:2011/11/18 21:12:00
--  

更正一下:

 

Dim r As Row = Tables("表A").Current
Dim s As String
For Each c As Col In Tables("表A").Cols
    If c.Name <> "第十列" Then
        If r.IsNull(c.Name) = False Then
            s = s & r(c.Name) & "\\"
        End If
    End If
Next
r("第十列") = s.Trim("\\")


--  作者:kevin
--  发布时间:2011/11/18 22:31:00
--  
谢谢 CZY 老师,效果好,您的代码是将表A,行里的内容连接起来。可事实上,我只需要将其中的几个列连接,例如第一、第三、第四、第七列的内容连接。在第八列中显示。
--  作者:czy
--  发布时间:2011/11/18 22:40:00
--  
Dim r As Row = Tables("表A").Current
Dim s As String
For Each c As Col In Tables("表A").Cols
    Select Case c.Name
        Case "第一列","第三列","第四列","第七列"
            If r.IsNull(c.Name) = False Then
                s = s & r(c.Name) & "\\"
            End If
    End Select
Next
r("第八列") = s.Trim("\\")

--  作者:kevin
--  发布时间:2011/11/19 8:10:00
--  
CZY老师:我在表中事件“DataColChanging”中使用了以下代码,以切正常使用,当我在事件“DataRowAdding”增加:e.DataRow("日期") = Date.Today()
e.
DataRow("姓名"
) = User.Name代码时,却报错,提示见图片:,请问我应该如何解决?
以下是引用czy在2011-11-18 21:12:00的发言:

更正一下:

 

Dim r As Row = Tables("表A").Current
Dim s As String
For Each c As Col In Tables("表A").Cols
    If c.Name <> "第十列" Then
        If r.IsNull(c.Name) = False Then
            s = s & r(c.Name) & "\\"
        End If
    End If
Next
r("第十列") = s.Trim("\\")


--  作者:czy
--  发布时间:2011/11/19 10:12:00
--  

加个判断看看:

 

Dim r As Row = Tables("表A").Current
Dim s As String
For Each c As Col In Tables("表A").Cols
    If c.Name <> "第十列" Then
        If r.IsNull(c.Name) = False Then
            s = s & r(c.Name) & "\\"
        End If
    End If
Next

if s > "" then
r("第十列") = s.Trim("\\")

end if


--  作者:caocaockk
--  发布时间:2011/11/19 14:32:00
--  
很好用,谢谢