以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如果将2个表中指定2个列值相同的行生成在另外一张表中 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42902) |
-- 作者:gsrcu -- 发布时间:2013/11/25 17:03:00 -- [求助]如果将2个表中指定2个列值相同的行生成在另外一张表中 有4张表 第一个表XRKH 字段:姓名 卡余额 工作单位 第二个表KHKH 字段:姓名 会员卡号 工作单位 第三个表ZZHC 字段:姓名 会员卡号 卡余额 工作单位 第四个表WZDD 字段:姓名 会员卡号 卡余额 工作单位 1、做了个窗体,加了个按钮,点击按钮后实现: 将第一个表中姓名、工作单位 与 第二个表中 姓名 工作单位进行对比,如果2个值都相等,就生成到第三个表中,并将2张表字段值合并在一起填充到ZZHC表中 2、如果第一个表中存在的客户,在第二张表中不存在时,条件与第1条一样,同时比对2个值(姓名、工作单位),生成数据到第四个表WZDD表中 我试了几次都不能实现,使用的是自助填充器代码,可以取到值但不能合并数据行。 求助高手解决一下。先谢谢了,偶是foxtable的新手,很看好这个软件。 [此贴子已经被作者于2013-11-25 17:05:13编辑过]
|
-- 作者:Bin -- 发布时间:2013/11/25 17:09:00 -- 1.这种问题最好上个例子 2.你的关联依据是什么? 第一行和第一行比较? 还是以姓名为关联作为比较? 3.想要得到帮助,必须要先把问题问好,泛泛而问,纸上谈兵,会让想帮助你的人也一筹莫展,巧妇难为无米之炊! 建议你把项目文件,数据.发上来,并且整理一下问题描述.
|
-- 作者:狐狸爸爸 -- 发布时间:2013/11/25 17:13:00 -- 命令窗口执行,细节自行调整:
For each dr1 As DataRow in DataTables("第一个表").datarows Dim dr2 As datarow = DataTables("第二个表").Find("姓名 = \'" & dr1("姓名") & “ and 工作单位 = \'" & dr1("工作单位") & "\'") if dr2 IsNot Nothing Then Dim dr3 As Datarow = Datatbbles("第三个表").AddNew() dr3("工作单位") = dr1("工作单位") dr3("姓名") = dr1("姓名") dr3("卡余额") = dr1("卡余额") dr3("会员卡号") = dr1("会员卡号") else Dim dr4 As Datarow = Datatbbles("第四个表").AddNew() dr4("工作单位") = dr1("工作单位") dr4("姓名") = dr1("姓名") dr4("卡余额") = dr1("卡余额") end If Next [此贴子已经被作者于2013-11-25 17:15:54编辑过]
|
-- 作者:gsrcu -- 发布时间:2013/11/25 17:16:00 -- 没有使用关联功能,第一个表 和第二个表都是单独录入的, 但可以确定的是这2张表中有共同字段值,数据所在的行都不固定
就是第一个表中姓名和工作单位 要去和 第二个表 中所有数据进行搜索,只要姓名和工作单位都相同,就将2个表中的行内容整合到第三个表中 因为第一个表没有 会员卡号这个列, 第二个表有会员卡号这个列 想实现的就是只要条件符合,就生成新的行
|
-- 作者:狐狸爸爸 -- 发布时间:2013/11/25 17:18:00 -- 答案在3楼 |
-- 作者:gsrcu -- 发布时间:2013/11/25 17:26:00 -- 好的,感谢 狐狸爸爸 正在试,一会告诉结果 |
-- 作者:gsrcu -- 发布时间:2013/11/25 17:31:00 -- Dim dr3 As Datarow = Datatbbles("第三个表").AddNew()
错误提示 未声明 Datatbbles
|
-- 作者:狐狸爸爸 -- 发布时间:2013/11/25 17:48:00 -- 笔误,改为:
Dim dr3 As Datarow = DataTables("第三个表").AddNew()
|
-- 作者:gsrcu -- 发布时间:2013/11/25 18:30:00 -- “无业”是工作单位的值 [此贴子已经被作者于2013-11-25 18:39:47编辑过]
|
-- 作者:有点甜 -- 发布时间:2013/11/25 19:07:00 -- 改成这样 For each dr1 As DataRow in DataTables("第一个表").datarows Dim dr2 As datarow = DataTables("第二个表").Find("姓名 = \'" & dr1("姓名") & “\' and 工作单位 = \'" & dr1("工作单位") & "\'") if dr2 IsNot Nothing Then Dim dr3 As Datarow = Datatables("第三个表").AddNew() dr3("工作单位") = dr1("工作单位") dr3("姓名") = dr1("姓名") dr3("卡余额") = dr1("卡余额") dr3("会员卡号") = dr1("会员卡号") else Dim dr4 As Datarow = Datatables("第四个表").AddNew() dr4("工作单位") = dr1("工作单位") dr4("姓名") = dr1("姓名") dr4("卡余额") = dr1("卡余额") end If Next |