以文本方式查看主题

-  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=22771)

--  作者:lxhmax
--  发布时间:2012/8/23 15:50:00
--  [求助]数据合并

  

       求教各位,如何根据表1的内容生成表2的内容,过程为,将“编号”,“依据”同样的数据中的“项目”合并在同一个表格内!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据合并.table


--  作者:狐狸爸爸
--  发布时间:2012/8/23 16:39:00
--  

你做个按钮,或者直接在命令窗口执行:

For Each pr As DataRow In DataTables("表2").DataRows
    Dim s As String = ""
    For Each dr As DataRow In DataTables("表1").Select("编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
        s = s & ","  & dr("项目")
    Next   
    pr("项目") = s.Trim(",")
Next


--  作者:狐狸爸爸
--  发布时间:2012/8/23 16:42:00
--  

这样更加简单:

 

For Each pr As DataRow In DataTables("表2").DataRows
    pr("项目")  =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
Next


--  作者:lxhmax
--  发布时间:2012/8/23 16:55:00
--  
以下是引用狐狸爸爸在2012-8-23 16:42:00的发言:

这样更加简单:

 

For Each pr As DataRow In DataTables("表2").DataRows
    pr("项目")  =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
Next

狐爸,我的意思是在表2没有数据的情况下,根据表1的内容生成表2的内容!


--  作者:狐狸爸爸
--  发布时间:2012/8/23 17:06:00
--  
DataTables("表2").DataRows.Clear
Dim f As New Filler
f.SourceTable = DataTables("表1") \'指定数据来源
f.SourceCols = "编号,类别" \'指定数据来源列
f.DataTable = DataTables("表2") \'指定数据接收表
f.DataCols = "编号,类别" \'指定数据接收列
f.Fill() \'填充数据
For Each pr As DataRow In DataTables("表2").DataRows
    pr("项目")  =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
Next

--  作者:lxhmax
--  发布时间:2012/8/23 17:57:00
--  
以下是引用狐狸爸爸在2012-8-23 17:06:00的发言:
DataTables("表2").DataRows.Clear
Dim f As New Filler
f.SourceTable = DataTables("表1") \'指定数据来源
f.SourceCols = "编号,类别" \'指定数据来源列
f.DataTable = DataTables("表2") \'指定数据接收表
f.DataCols = "编号,类别" \'指定数据接收列
f.Fill() \'填充数据
For Each pr As DataRow In DataTables("表2").DataRows
    pr("项目")  =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
Next
太感谢狐爸了,再问个小问题,如何将"|”替换为","~~
--  作者:狐狸爸爸
--  发布时间:2012/8/24 8:37:00
--  
DataTables("表2").DataRows.Clear
Dim f As New Filler
f.SourceTable = DataTables("表1") \'指定数据来源
f.SourceCols = "编号,类别" \'指定数据来源列
f.DataTable = DataTables("表2") \'指定数据接收表
f.DataCols = "编号,类别" \'指定数据接收列
f.Fill() \'填充数据
For Each pr As DataRow In DataTables("表2").DataRows
    Dim s As String =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
    pr("项目")  = s.Replace("|",",")
Next

--  作者:lxhmax
--  发布时间:2012/8/24 16:49:00
--  
以下是引用狐狸爸爸在2012-8-24 8:37:00的发言:
DataTables("表2").DataRows.Clear
Dim f As New Filler
f.SourceTable = DataTables("表1") \'指定数据来源
f.SourceCols = "编号,类别" \'指定数据来源列
f.DataTable = DataTables("表2") \'指定数据接收表
f.DataCols = "编号,类别" \'指定数据接收列
f.Fill() \'填充数据
For Each pr As DataRow In DataTables("表2").DataRows
    Dim s As String =  DataTables("表1").GetComboListString("项目","编号 = \'" & pr("编号") & "\' And 类别 = \'" & pr("类别") & "\'")
    pr("项目")  = s.Replace("|",",")
Next

非常感谢狐爸的帮助,表1的数据是不断增加的,表2 的数据也是不断累积的,要对表1新增指定的内容添加到表2,再次麻烦狐爸,这个要怎么弄~!


--  作者:狐狸爸爸
--  发布时间:2012/8/24 17:34:00
--  
做个按钮,需要更新表2的数据的时候,单击这个按钮
--  作者:lxhmax
--  发布时间:2012/9/5 16:30:00
--  

求救,对于这个问题我还没没搞懂呢~!

 

  表1的数据是不断增加的,表2 的数据也是不断累积的,要对表1新增指定的内容添加到表2,再次麻烦狐爸,这个要怎么弄~!