Foxtable(狐表)用户栏目专家坐堂 → [求助]相同结构的几个表相同列内容集合到一个临时表格中!


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

主题:[求助]相同结构的几个表相同列内容集合到一个临时表格中!

帅哥哟,离线,有人找我吗?
bashanren
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
[求助]相同结构的几个表相同列内容集合到一个临时表格中!  发帖心情 Post By:2019/10/9 15:37:00 [显示全部帖子]

各位老师下午好!
在我的项目中有“GMYS”和“GMYX”、“SUKUJS”三个表格中均有“XZMC”、“XJHZXM”、“XJHZDH”、“XJHZZW”四列,数据类型均为字符型。想将三个表的相同列的内容集合到一个临时表中,我以下的代码已经建立了临时表,并将“GMYX”表格中的相关联内容集到该临时表中,不知怎么加写代码才能将其他两个表的相关内容也集合到该临时表,要求:“XZMC”(乡镇名称)下的“XJHZXM”(河长姓名)只集合一次,即同一乡镇的河长姓名不重复。请老师指导,谢谢!!

Dim dtb As New DataTableBuilder("XJHHZLSHZB","乡级河湖长临时汇总表")
dtb.AddDef("xzMC",Gettype(String),4,"","乡镇名称")
dtb.AddDef("xjhzXM",Gettype(String),6,"","乡级河长姓名")
dtb.AddDef("xjhzTEL",Gettype(String),11,"","乡级河长电话")
dtb.AddDef("xjhzZW",Gettype(String),20,"","乡级河长职称")
dtb.Build()
'MainTable = Tables("XJHHZLSHZB")

'--------------------以下是根据河长姓名查找所在乡镇的代码:
For Each nm1 As String In DataTables("GMYX").GetValues("XJHZXM")
    Dim dr1 As DataRow = DataTables("XJHHZLSHZB").AddNew()
    dr1("xjhzXM") = nm1
    For Each dr2 As DataRow In DataTables("GMYX").DataRows
        If dr2("XJHZXM") = nm1 Then
            dr1("xzMC") = dr2("XZMC")
            dr1("xjhzTEL")=dr2("xjhzdh")
            dr1("xjhzZW")=dr2("xjhzzw")
        End If
    Next
Next
  

 回到顶部
帅哥哟,离线,有人找我吗?
bashanren
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/10/9 16:44:00 [显示全部帖子]

谢谢“狐狸爸爸”的亲自指导,但我要的不只是一个简单合并,因为三个表及临时表的字段略有差异,还是想在我的那段代码中加写代码实现,还请老师们继续指导,谢谢!!

 回到顶部
帅哥哟,离线,有人找我吗?
bashanren
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/10/9 20:42:00 [显示全部帖子]

按照“狐狸爸爸”的方法,我将代码修改如下,可提示出错。

Dim dtb As New DataTableBuilder("XJHHZLSHZB","乡级河湖长临时汇总表")
dtb.AddDef("xzMC",Gettype(String),4,"","乡镇名称")yif
dtb.AddDef("xjhzXM",Gettype(String),6,"","乡级河长姓名")
dtb.AddDef("xjhzDH",Gettype(String),11,"","乡级河长电话")
dtb.AddDef("xjhzZW",Gettype(String),20,"","乡级河长职称")
dtb.Build()

在论谈中发这段代码,总是出错,只好发图片了。

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






运行后提示:

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

[此贴子已经被作者于2019/10/9 20:47:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bashanren
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/10/9 21:15:00 [显示全部帖子]

非常感谢,辛苦“狐狸爸爸”了!
如果要在代码中添加代码将其他两个表的相关列内容熔合到这个临时表中呢?学习一下这个代码该如何写,谢谢!

Dim dtb As New DataTableBuilder("XJHHZLSHZB","乡级河湖长临时汇总表")
dtb.AddDef("xzMC",Gettype(String),4,"","乡镇名称")
dtb.AddDef("xjhzXM",Gettype(String),6,"","乡级河长姓名")
dtb.AddDef("xjhzDH",Gettype(String),11,"","乡级河长电话")
dtb.AddDef("xjhzZW",Gettype(String),20,"","乡级河长职称")
dtb.Build()
'MainTable = Tables("XJHHZLSHZB")

'--------------------以下是熔合几个表相关列内容的代码:

For Each nm1 As String In DataTables("GMYX").GetValues("XJHZXM")
    Dim dr1 As DataRow = DataTables("XJHHZLSHZB").AddNew()
    dr1("xjhzXM") = nm1
    For Each dr2 As DataRow In DataTables("GMYX").DataRows
        If dr2("XJHZXM") = nm1 Then
            dr1("xzMC") = dr2("XZMC")
            dr1("xjhzTEL")=dr2("xjhzdh")
            dr1("xjhzZW")=dr2("xjhzzw")
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
bashanren
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/10/9 22:12:00 [显示全部帖子]

辛苦“狐狸爸爸”!
您改的这个代码到是可以把两个表合到一个临时表中,可是,不能过滤相同行,要求“XJHZXM”(河长姓名)要按“XZMC”进行过滤,也就是说,假如A乡镇有多个“李明”的话,只在临时表中记一个,其他同名行要忽略,不同乡镇可以有同名。还请老师们帮忙修改,谢谢!!


再者:我将 Dim dr2 As dataRow in DataTables("XJHHZLSHZB").AddNew()修改成: Dim dr2 As dataRow DataTables("XJHHZLSHZB").AddNew()才可以运行。不然就错。
[此贴子已经被作者于2019/10/9 22:14:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bashanren
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2019/10/9 22:49:00 [显示全部帖子]

非常感谢“狐狸爸爸”,辛苦了!!

 回到顶部