Foxtable(狐表)用户栏目专家坐堂 → 手工编码填充数据问题,请教老师


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

主题:手工编码填充数据问题,请教老师

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
手工编码填充数据问题,请教老师  发帖心情 Post By:2013/1/22 3:09:00 [显示全部帖子]

帮助中代码如下:

 

Dim Vals As List(of String())
Vals = DataTables("来源表").GetUniqueValues("","产品","客户")
For
i As Integer = 0 To Vals.Count - 1
    Dim
dr As DataRow = DataTables("接收表").AddNew()
    dr(
"产品") = Vals(i)(0)
    dr(
"客户") = Vals(i)(1)
Next

 

如果来源表为关联表,代码要怎么改?比如关联表名"表A.表B",用Tables("表A.表B")提示错误,DataTables("表A.表B")提示不存在"表A.表B"请教老师


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/22 16:46:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-22 8:43:00的发言:
 这个提示是正常的。

 对于 表A.表B,DataTables("表A.表B") 实际上是不存在的,只是临时生成的一个Table

 你可以这样用,比如 Tables("表A.表B").DataTable直接使用,这个也等同于DataTables("表B")

这样调整执行后连同"表B"中的数据也复制过去了,没实现只复制"表A.表B"内容,在代码中想再加了个排除,排除掉"接收表"与"表A.表B"存在相同的内容,只复制"表A.表B"与"接收表"中不存在的内容,一行数据好解决,多行数据头大了,摸不清方向了,再次请教老师

 


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/22 23:31:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-22 17:17:00的发言:


呃,这样说吧,表A.表B 实际上就是 Datatables("表B").GetUniqueValues("关联列 = '" & Tables("表A").current("关联列") & "'", "xxx")

至于你说的排除接收表存在的内容。你比较一下就行了。

明白林老师的代码了("关联列 = '" & Tables("表A").current("关联列") & "'"这行代码设置了获得不重复值的条件,"xxx"代表的是获得不重复的列值

 

排除接收表应该是再利用这个代码做成2张表比较后获得值填入


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/22 23:43:00 [显示全部帖子]

以下是引用zerov在2013-1-22 20:37:00的发言:
还是有点不明白关联表的关系,能举例说明一下吗?

关联表的关系其实很简单,比如上面说的"表A.表B"说简单点这个表其实就是一个临时表,用的时候存在,不用的时候不存在,至于什么是临时表帮助中说的很清楚,可以参考下

 

帮助文件中有个"用Table控件模拟关联表"其实就是把关联表中的代码解剖出来了

 

个人了解是这样,希望对你有帮助

 

 


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/23 3:57:00 [显示全部帖子]

Datatables("表B").GetUniqueValues("关联列 = '" & Tables("表A").current("关联列") & And 重复列 ='" & Tables("接收表").current("重复列") & "'", "xxx") 学生的代码是否正确,麻烦林老师核对下。 后面的代码是排除了表B跟接收表中相同的重复列的内容

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/23 17:41:00 [显示全部帖子]

代码改成这样不添加了,数据怎么改都无效

Dim Vals As List(of String())
Vals = DataTables("表B").GetUniqueValues("第一列 = '" & Tables("表A").current("第一列") & "' And 产品 = '" & Tables("接收表").current("产品") & "'", "产品","客户")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("接收表").AddNew()
    dr("产品") = Vals(i)(0)
    dr("客户") = Vals(i)(1)
Next

 

用Find是怎么设置?请教林老师


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6294 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/23 18:51:00 [显示全部帖子]

就是这样!鼓掌~~~~~~~~,又学习到了一招  If DataTables("接收表").Find("产品='" & val(0) & "' And 客户='" & val(1) & "'") Is Nothing Then 

 

 


感谢林老师的帮助~~~


 回到顶部