Foxtable(狐表)用户栏目专家坐堂 → 关于通过一个表向另外一个表有条件的赋值


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

主题:关于通过一个表向另外一个表有条件的赋值

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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
关于通过一个表向另外一个表有条件的赋值  发帖心情 Post By:2017/8/3 13:41:00 [只看该作者]

在表A中有A、B、C、D四列,A、B、C三列不为空,当D列发生变化后,在表B中查找与之相同的数据行 ,找到后将表B的D列值付给表A的D列。两个D列为逻辑型数据。
我做了一个代码,但弄完后变成这个样子了,就是只有当表A的D列发生真假变化后,表B的D列才能变化,否则表B的D列不能变化。看看老师给指正一下吧!

Select Case e.DataCol.Name
    Case "D"
        Dim adr As DataRow = e.DataRow
        Dim pr As DataRow
                    Dim filter As String
            filter = "A = '" & adr("A") & "' And B = '" & adr("点B") & "' And C = '" & adr("C") & "'"
            pr = DataTables("表A").Find(filter)
            If pr IsNot Nothing Then
                adr("D") = pr("D")
End If
End Select

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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
  发帖心情 Post By:2017/8/3 13:41:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 14:43:00 [只看该作者]

表ADataColChanged事件

 

Select Case e.DataCol.Name
    Case "车号","点位","描述"
        Dim adr As DataRow = e.DataRow
        Dim pr As DataRow
        Dim filter As String
        filter = "车号 = '" & adr("车号") & "' And 点位 = '" & adr("点位") & "' And 描述 = '" & adr("描述") & "'"
        pr = DataTables("表B").Find(filter)
        If pr IsNot Nothing Then
            adr("点检组归档") = pr("点检组归档")
        End If
End Select


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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
  发帖心情 Post By:2017/8/3 16:14:00 [只看该作者]

老师,测试过了,但好像还有问题,也许我测试的方法不对,你再给看看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 16:21:00 [只看该作者]

你修改这三列 "车号","点位","描述",如果在表B找到相同的行,就把表B的值赋值过来。

 

你的逻辑是否有问题,请详细说明你要实现什么?


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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
  发帖心情 Post By:2017/8/3 21:33:00 [只看该作者]

老师我的目的是这样的,我是搞设备管理的人员,例如车辆吧,有发动机、变速箱、差速器等大的总成件,也有小的件例如仪表、管路、刹车片、刹车分泵等,在企业管理中呢,主要对大总件进行生命周期管理,跟踪使用寿命和过程维修以及隐患的检查,当在使用发现了大总成件有问题时,就在表A中进行“车号、点位、隐患描述”等录入工作,如果认为需要检修呢,就在表A里的“生成隐患”列录入“生成隐患”字样,这样这些字段就在表B里自动添加一个一模一样的记录(我已经完成了)。表B呢是这样的作用,所有的检修工作单是从表B里形成的,如果检修完毕后,在表B的“点检组归档”里打钩,表示该隐患处理完毕。这时表A里的与之相对应的那条记录还没有结束的标示呢,如果再进去打钩,很不科学,我想如果B表的“点检组归档”打钩了,就让A表里的“点检组归档”也打钩,就方便多,也能够让这个问题在两个表中全部结案。

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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
  发帖心情 Post By:2017/8/3 21:39:00 [只看该作者]

此外,老师你对我的问题原意有差异:
我是这样的意思,发生变化的列是表B里的“点检组归档”列,即:打钩。打钩后,使用这行的“车号、点位、描述”三列的值去A表找,找到相同的数据后,就让相同数据的“点检组归档”列为真。就算完成了。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/3 21:43:00 [只看该作者]

表B的DataColChanged事件

 

Select Case e.DataCol.Name
    Case "车号","点位","描述", "点检组归档"
        Dim adr As DataRow = e.DataRow
        Dim pr As DataRow
        Dim filter As String
        filter = "车号 = '" & adr("车号") & "' And 点位 = '" & adr("点位") & "' And 描述 = '" & adr("描述") & "'"
        pr = DataTables("表a").Find(filter)
        If pr IsNot Nothing Then
            pr("点检组归档") = adr("点检组归档")
        End If
End Select


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


加好友 发短信
等级:幼狐 帖子:98 积分:840 威望:0 精华:0 注册:2017/5/27 20:17:00
  发帖心情 Post By:2017/8/3 22:56:00 [只看该作者]

好,老师你很棒。佩服,就是我长进的太慢了,描述的也不清楚。你多包涵。

 回到顶部