Foxtable(狐表)用户栏目专家坐堂 → 如何跨表引用


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

主题:如何跨表引用

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


加好友 发短信
等级:童狐 帖子:273 积分:1777 威望:0 精华:0 注册:2013/2/18 23:22:00
  发帖心情 Post By:2022/12/7 10:35:00 [只看该作者]

蓝版,可以帮忙写一下哇?看那文档有点糊涂了。

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


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

什么地方看不懂?

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


加好友 发短信
等级:童狐 帖子:273 积分:1777 威望:0 精华:0 注册:2013/2/18 23:22:00
  发帖心情 Post By:2022/12/7 10:50:00 [只看该作者]

Dim zb As Row = Tables("表B").current
Dim za As Row = Tables("表A").current
        za("值班人员") = zb("值班人员")
我直接在datacolchanged写代码了,可以了,但是不确定这样的逻辑是否合理?

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


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


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


加好友 发短信
等级:童狐 帖子:273 积分:1777 威望:0 精华:0 注册:2013/2/18 23:22:00
  发帖心情 Post By:2022/12/7 11:00:00 [只看该作者]

嗯,是的,所以我才说逻辑值得商榷的。版版,能否在实例里写一下完整的代码,我想直观的测试一下我的代码为什么逻辑上不合理。谢谢

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


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

自己学着改一下
1、加上列名的判断:

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

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

2、表事件应该使用对应的e参数来使用更改了数据的行

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

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


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


加好友 发短信
等级:童狐 帖子:273 积分:1777 威望:0 精华:0 注册:2013/2/18 23:22:00
  发帖心情 Post By:2022/12/7 15:18:00 [只看该作者]

If e.DataCol.Name = "值班人员" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("值班人员") = Nothing 
    Else
        Dim dr As DataRow
         dr = DataTables("表B").Find("[值班人员] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then 
            e.DataRow("值班人员") = dr("值班人员")
        End If
    End If
End If

在表A的datacolchanged输入了以上代码,通过表B录入的数据,表A还是没有。

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


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

在表B录入的数据代码当然要放在表B的datacolchanged事件

If e.DataCol.Name = "值班人员" Then 
    If e.NewValue Is Nothing Then 
    Else
        Dim dr As DataRow
         dr = DataTables("表A").Find("[值班人员] = '" & e.NewValue & "'") 查找表A是否有这个值班人员
        If dr Is Nothing Then  如果没有(如果查到有数据,还需要再添加一个相同的人员吗?)
            dr = DataTables("表A").addnew 新增一行
            dr("值班人员") = e.NewValue 赋值
        End If
    End If
End If

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


加好友 发短信
等级:童狐 帖子:273 积分:1777 威望:0 精华:0 注册:2013/2/18 23:22:00
  发帖心情 Post By:2022/12/7 20:14:00 [只看该作者]

版版,如果说表A事先已经存在了一行,只是需要把表B的值班人员给填充到表A的值班人员中去,也就是说不需要在表A新增一行了,那在datacolchanged该怎么写代码呢?

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


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

都已经有这个值班人员了,还怎么填充,赋值同样的名称不是多余的操作吗

 回到顶部
总数 23 上一页 1 2 3 下一页