以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]这列不重复值代码转成表B列名,表A第1列空间名在表B合并单元格,材料对应填入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82659)

--  作者:湛江智
--  发布时间:2016/3/22 13:35:00
--  [求助]这列不重复值代码转成表B列名,表A第1列空间名在表B合并单元格,材料对应填入

这列不重复值代码转成表B列名,表A第1列空间名在表B合并单元格,材料对应填入

 

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

[此贴子已经被作者于2016/3/22 14:01:11编辑过]

--  作者:湛江智
--  发布时间:2016/3/22 13:37:00
--  [求助]表A 列不重复值代码转成表B列名,其他对应对应填入


图片点击可在新窗口打开查看此主题相关图片如下:表a.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:表b.png
图片点击可在新窗口打开查看

 

[此贴子已经被作者于2016/3/22 14:01:32编辑过]

--  作者:大红袍
--  发布时间:2016/3/22 14:39:00
--  

参考

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=68546&skin=0

 

 


--  作者:大红袍
--  发布时间:2016/3/22 14:41:00
--  
Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("空间", Gettype(String), 32)
For Each v As String In DataTables("表A").GetValues("这列不重复值代码转成表B列名")
    dtb.AddDef(v, Gettype(String))
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("空间")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("空间") = v
    For Each dr2 As DataRow In DataTables("表A").Select("空间 = \'" & v & "\'")
       dr1(dr2("这列不重复值代码转成表B列名")) = dr2("材料")
    Next
Next
MainTable = Tables("表B")

--  作者:湛江智
--  发布时间:2016/3/22 18:00:00
--  

红袍老师,上面代码转换过来,表a只是部分数据到表b,要怎样完善才能把表a数据不缺少转到表b?


--  作者:大红袍
--  发布时间:2016/3/22 18:03:00
--  
Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("空间", Gettype(String), 32)
For Each v As String In DataTables("表A").GetValues("这列不重复值代码转成表B列名")
    dtb.AddDef(v, Gettype(String))
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("空间")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("空间") = v
    For Each dr2 As DataRow In DataTables("表A").Select("空间 = \'" & v & "\'")
        Dim str As String = dr1(dr2("这列不重复值代码转成表B列名")) & "," & dr2("材料")
        dr1(dr2("这列不重复值代码转成表B列名")) = str.trim(",")
    Next
Next
MainTable = Tables("表B")
[此贴子已经被作者于2016/3/22 19:27:53编辑过]

--  作者:客人
--  发布时间:2016/3/22 18:10:00
--  

红袍老师,还有一点点问题,开头第一个字,缺少了,怎么改呢?


 


 


--  作者:湛江智
--  发布时间:2016/3/22 18:23:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:缺少第一个字.png
图片点击可在新窗口打开查看

红袍老师,还有一点点问题,开头第一个字,缺少了,怎么改呢?

[此贴子已经被作者于2016/3/22 18:23:46编辑过]

--  作者:大红袍
--  发布时间:2016/3/22 19:28:00
--  

哦,写错

 

Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("空间", Gettype(String), 32)
For Each v As String In DataTables("表A").GetValues("这列不重复值代码转成表B列名")
    dtb.AddDef(v, Gettype(String))
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("空间")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("空间") = v
    For Each dr2 As DataRow In DataTables("表A").Select("空间 = \'" & v & "\'")
        Dim str As String = dr1(dr2("这列不重复值代码转成表B列名")) & "," & dr2("材料")
        dr1(dr2("这列不重复值代码转成表B列名")) = str.trim(",")
    Next
Next
MainTable = Tables("表B")


--  作者:湛江智
--  发布时间:2016/3/22 20:30:00
--  
太感谢了,下班了还帮我整