Foxtable(狐表)用户栏目专家坐堂 → 如何将表B的列标题写入到表A的第一行?


  共有23782人关注过本帖树形打印复制链接

主题:如何将表B的列标题写入到表A的第一行?

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
如何将表B的列标题写入到表A的第一行?  发帖心情 Post By:2009/8/9 11:06:00 [只看该作者]

下面的代码结果是将最后一列的标题全部写入到第一行了,我要的结果是表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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/8/9 13:05:00 [只看该作者]

yangming版主,我可当不了老师,  只是刚好写过类似的代码, 好多都不会的~  

 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/8/9 13:30:00 [只看该作者]

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

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


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By: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
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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编辑过]

 回到顶部
总数 37 1 2 3 4 下一页