以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教:在另表取表B所有列名称  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2904)

--  作者:yangming
--  发布时间:2009/5/24 17:55:00
--  请教:在另表取表B所有列名称
这段代码错在何处?我的要求是将表B的所有列名称填到表A的第一列中,可是这个代码只在第一列中填了表B最后列的名称

For Each cl As DataCol In DataTables("表B").DataCols
For Each dr As DataRow In DataTables("表A").DataRows
dr("第一列")=cl.Name
Next
Next

--  作者:狐哥
--  发布时间:2009/5/24 19:38:00
--  
dim cl as string
For Each dr as datarow in datatables("表B").datarows
For Each dc As DataCol In DataTables("表A").DataCols
    cl = cl & dc.Name
Next
dr("第一列") = cl
NEXT

这个可以.刚写错了
[此贴子已经被作者于2009-5-24 19:43:05编辑过]

--  作者:smileboy
--  发布时间:2009/5/24 19:39:00
--  
For Each cl As DataCol In DataTables("表B").DataCols
    Dim dr As DataRow = DataTables("表A").AddNew()
    dr("第一列")=cl.Name
Next

--  作者:yangming
--  发布时间:2009/5/24 20:03:00
--  
狐哥的有错误

smileboy对了,谢谢二位老师!
--  作者:mr725
--  发布时间:2009/5/24 20:39:00
--  
1、建立一个 表名列名和列标题对照表
2、设定三列(名): 表名、列名、列标题
3、执行下面代码,一次就把项目中所有表名、列名、列标题全部填入 (1、中的) 表名列名和列标题对照

For Each dt As DataTable In DataTables
    For Each dc As DataCol In dt.DataCols
        Dim dr As DataRow = DataTables("表名列名和列标题对照表").AddNew()
        dr("表名")=dt.Name
        dr("列名")=dc.Name
        dr("列标题")=dc.caption
    Next
Next


还可以加上表标题的~  
[此贴子已经被作者于2009-5-24 22:14:48编辑过]

--  作者:Fotable
--  发布时间:2012/8/10 16:07:00
--  

你只要增加一个叫 表对照 的表 剩下的万能代码帮你搞定

 

Dim dc As DataCol
Dim i As Integer = 0
For Each dt As DataTable In DataTables
    DataTables("表对照").DataCols.Add( dt.name,Gettype(String) )
    With Tables("表对照")
        .position = 0
        i = 0
        For Each dc  In dt.DataCols
            If i >= .Rows.count
                .AddNew()
            End If
            .Rows(.position )(dt.name)=dc.Name
            i=i+1
            .position = i
        Next
    End With
Next