以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何将表B的列标题写入到表A的第一行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3842)

--  作者:yangming
--  发布时间:2009/8/9 11:06:00
--  如何将表B的列标题写入到表A的第一行?
下面的代码结果是将最后一列的标题全部写入到第一行了,我要的结果是表A第一列写入表B的第一列标题,表A第二列写入表B的第二列标题,以此类推
Dim dr As DataRow = DataTables("表B").DataRows(0)
For Each c As DataCol In DataTables("表B").DataCols
For Each cl As DataCol In DataTables("Sheet6").DataCols
dr(c)=cl.Name
Next
Next

--  作者:mr725
--  发布时间:2009/8/9 12:04:00
--  
Dim dr As DataRow = DataTables("表A").DataRows(0)
dim tt as string
For Each c As DataCol In DataTables("表B").DataCols
      tt = tt & "|" & c.name
Next
dim n as integer
For Each cl As DataCol In DataTables("表A").DataCols
    dr(cl)=tt.split("|")(n+1)
    n=n+1

Next


刚才A  B 表颠倒了
[此贴子已经被作者于2009-8-9 12:08:30编辑过]

--  作者:yangming
--  发布时间:2009/8/9 12:57:00
--  
以下是引用mr725在2009-8-9 12:04:00的发言:
Dim dr As DataRow = DataTables("表A").DataRows(0)
dim tt as string
For Each c As DataCol In DataTables("表B").DataCols
      tt = tt & "|" & c.name
Next
dim n as integer
For Each cl As DataCol In DataTables("表A").DataCols
    dr(cl)=tt.split("|")(n+1)
    n=n+1

Next


刚才A  B 表颠倒了
[此贴子已经被作者于2009-8-9 12:08:30编辑过]

谢谢mr725老师!


--  作者:mr725
--  发布时间:2009/8/9 13:01:00
--  
简化一下:::::::::::::

Dim dr As DataRow = DataTables("表A").DataRows(1)
Dim tt as string
Dim n as integer
For Each c As DataCol In DataTables("表B").DataCols
    tt = c.name
    dr(Tables("表A").Cols(n).name)=tt
    n=n+1
Next


--  作者:mr725
--  发布时间:2009/8/9 13:05:00
--  
yangming版主,我可当不了老师,  只是刚好写过类似的代码, 好多都不会的~  
--  作者:yangming
--  发布时间:2009/8/9 13:30:00
--  
以下是引用mr725在2009-8-9 13:05:00的发言:
yangming版主,我可当不了老师,  只是刚好写过类似的代码, 好多都不会的~  

能者为师,,这段代码我搞了二天也没搞出来,就是没想到复制为文本再提取,有时候就是这么笨,呵呵


--  作者:yangming
--  发布时间:2009/8/9 13:38:00
--  
以下是引用mr725在2009-8-9 13:01:00的发言:
简化一下:::::::::::::

Dim dr As DataRow = DataTables("表A").DataRows(1)
Dim tt as string
Dim n as integer
For Each c As DataCol In DataTables("表B").DataCols
    tt = c.name
    dr(Tables("表A").Cols(n).name)=tt
    n=n+1
Next

这个好,呵


--  作者:migold
--  发布时间:2009/8/13 11:37:00
--  

我参考楼主的代码:
改成这样:
Dim tt1 as string
Dim tt2 as string
For Each c As DataCol In DataTables("表B").DataCols
      tt1 = tt1 & "|" & c.name
      tt2 = tt2 & "|" & c.Caption
Next
Dim Values1() as String
Dim Values2() as String
Values1 = tt1.split("|")
Values2 = tt2.split("|")
Dim dr1 As DataRow = DataTables("表A").AddNew()
Dim dr2 As DataRow = DataTables("表A").AddNew()
Dim n as integer
For Each cl As DataCol In DataTables("表A").DataCols
    IF Values1.Length > (n+1) Then
        dr1(cl)=tt1.split("|")(n+1)
        dr2(cl)=tt2.split("|")(n+1)
        n=n+1
    ELSE
        dr1(cl)=Nothing
        dr2(cl)=Nothing
    END IF
Next


--  作者:migold
--  发布时间:2009/8/13 11:39:00
--  
 类似:  

For Each dt As DataTable In DataTables

    For Each dc As DataCol In dt.DataCols

        Dim dr As DataRow = DataTables("A").AddNew()

        dr("表名")=dt.Name

        dr("表标题")=dt.caption

        dr("列名")=dc.Name

        dr("列标题")=dc.caption

    Next

Next


如果是:一次就把项目中所有表名、表标题、列名、列标题全部填入到表
A,请问怎样改写以下代码Dim tt1 as string
Dim tt2 as string
For Each c As DataCol In DataTables("表B").DataCols
      tt1 = tt1 & "|" & c.name
      tt2 = tt2 & "|" & c.Caption
Next
Dim Values1() as String
Dim Values2() as String
Values1 = tt1.split("|")
Values2 = tt2.split("|")
Dim dr1 As DataRow = DataTables("表A").AddNew()
Dim dr2 As DataRow = DataTables("表A").AddNew()
Dim n as integer
For Each cl As DataCol In DataTables("表A").DataCols
    IF Values1.Length > (n+1) Then
        dr1(cl)=tt1.split("|")(n+1)
        dr2(cl)=tt2.split("|")(n+1)
        n=n+1
    ELSE
        dr1(cl)=Nothing
        dr2(cl)=Nothing
    END IF
Next


--  作者:mr725
--  发布时间:2009/8/13 12:30:00
--  
For Each dt As DataTable In DataTables
    For Each dc As DataCol In dt.DataCols
        Dim dr As DataRow = DataTables("表A").AddNew()
        dr("表名")=dt.Name
        dr("表标题")=dt.caption
        dr("列名")=dc.Name
        dr("列标题")=dc.caption
    Next
Next
这个不就可以吗?


另外,要按楼上的改,那么表A你得事先准备好增加列 =  表个数 X 每个表的列数 ,多麻烦啊~   对不?
[此贴子已经被作者于2009-8-13 12:54:13编辑过]