Foxtable(狐表)用户栏目专家坐堂 → 求教老师,怎么遍历A表后给B表的多值字段赋值呢...有新问题..


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

主题:求教老师,怎么遍历A表后给B表的多值字段赋值呢...有新问题..

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
求教老师,怎么遍历A表后给B表的多值字段赋值呢...有新问题..  发帖心情 Post By:2019/7/7 20:51:00 [只看该作者]

 请教老师:

目标是给  tables("收入").Current("隶属订单")  这个地方赋值,已经设置成多值字段
数据来源为tables(”订单表”),复选框已打开
想遍历tables(“订单表”).Checked = true的行
把里面若干个“订单编号” 以多值字段形式添加到tables("收入").Current("隶属订单")
该怎么操作呢

更新.............................................................................................................................
这几天试了一些表达式和代码语法,之前混用的太多导致频频出错,现在好一些了。
现在出现衍生的新问题,也是多值字段相关,折腾许久无果,又需要来请教老师了图片点击可在新窗口打开查看
新问题就是
Tables("订单表").Filter = "订单编号 In ('" & Tables("收入表").Current("隶属订单").replace(",","','") & "')"
目前是通过这样的形式,把“订单表”和“收入表”联系起来,“收入表”里的“隶属订单”字段由N个订单编号组成的多值字列

现("订单表")内某A行,订单编号从"SD01"改为"SD02",为了重新建立筛选关联,怎么遍历收入表,把符合条件的行中的多值字列("隶属订单")里含的SD01数值全部改成SD02呢?

更新..............................................................................................................................
上面用
Dim ss1 As String = e.OldValue
Dim ss2 As String = e.NewValue
For Each r As Row In Tables("收入表").rows
    r("隶属订单") = r("隶属订单").replace(ss1,ss2)
Next
这段代码解决了问题
..
然而
............................
今天碰到了新bug,发现把这一行删掉的过程中,没办法用replace(",","','")这个语句,用空值来代替原始值阿 (⊙﹏⊙)
还会多个逗号..

翻了半天帮助无过,只好又来求助了图片点击可在新窗口打开查看

...更新...
干脆遍历table来重新生成了值 ..暂时解决了
[此贴子已经被作者于2019/7/23 23:08:52编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/7 21:31:00 [只看该作者]

If  Tables("收入").Current IsNot Nothing
    Dim str As String
    For Each r As Row In Tables("订单表").GetCheckedRows
        str = str & "," & r("订单编号")
    Next
    Tables("收入").Current("隶属订单") = str.Trim(",")
End If

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
  发帖心情 Post By:2019/7/7 21:31:00 [只看该作者]

 谢谢老师 我去试试

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
  发帖心情 Post By:2019/7/7 22:01:00 [只看该作者]

试了一下,代码运行正常,但产生了新问题
假如并没有任何行被checked,就会报错
试着加了句判断,还是报错,不知为何图片点击可在新窗口打开查看
If  Tables("收入").Current IsNot Nothing
    Dim str As String
    For Each r As Row In Tables("订单表").GetCheckedRows
    If r IsNot Nothing Then
        str = str & "," & r("订单编号")
    End if
    Next
    Tables("收入").Current("隶属订单") = str.Trim(",")
End if

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/7 22:10:00 [只看该作者]

Dim str As String
改为
Dim str As String = ""

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
  发帖心情 Post By:2019/7/7 22:23:00 [只看该作者]

 可以用了
谢谢这么晚还帮我们解答疑难

我刚才想了个办法检测有没有行被选中
定义个txt
for each 遍历下行  假如有任何一行选中的话  txt =1,没有的话txt = 0
这样行是行了
不知道是不是有更简便的办法

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/7 22:32:00 [只看该作者]

msgbox(Tables("订单表").GetCheckedRows.count)

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
  发帖心情 Post By:2019/7/7 22:36:00 [只看该作者]

 谢谢谢谢  原来可以计数 

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


加好友 发短信
等级:幼狐 帖子:91 积分:803 威望:0 精华:0 注册:2013/2/13 22:11:00
  发帖心情 Post By:2019/7/7 23:37:00 [只看该作者]

又产生新问题了 图片点击可在新窗口打开查看
刚才的逆向,根据已经添加过多值数列的tables("收入").Current("隶属订单")的内容
来筛选对应的订单
例:
tables("收入").Current("隶属订单“)里内容是   AA111,AA112,AA113
目前代码是
Tables("订单表").Filter = "订单编号 In (" & Tables("收入表").Current("隶属订单") & ")"
报错
是不是 in 这种不能这么用?
[此贴子已经被作者于2019/7/8 0:01:00编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/8 8:40:00 [只看该作者]

Tables("订单表").Filter = "订单编号 In ('" & Tables("收入表").Current("隶属订单").replace(",","','") & "')"

 回到顶部
总数 19 1 2 下一页