Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表引用


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

主题:[求助]跨表引用

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
[求助]跨表引用  发帖心情 Post By:2015/11/29 20:12:00 [只看该作者]

实现:今天创建的数据,才能跨表引用
代码如下,应该是不严谨的,麻烦老师指教。


If e.DataCol.Name = "第一列" Then
    If e.NewValue Is Nothing Then
        e.DataRow("第二列") = Nothing
        e.DataRow("第三列") = Nothing
    Else
        Dim dt As Date = Date.Today
        If e.DataRow("time") = dt Then
            Dim dr As DataRow
            dr = DataTables("表B").Find("[第一列] = '" & e.NewValue & "'")
            If dr IsNot Nothing Then
                e.DataRow("第二列") = dr("第二列")
                e.DataRow("第三列") = dr("第三列")
            End If
        End If
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/29 23:14:00 [只看该作者]

你想弄成什么效果?要么你去掉 If e.DataRow("time") = dt Then 的判断。


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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/11/30 9:53:00 [只看该作者]

表A新增一行,“time”列自动=date.today

需要的效果是:今天新增的行,其可以跨表引用表B的数据。
如果过了今天,那么再修改“第一列”,其数据也不会被修改。

以前用用这个代码,一直正常的。
现在新换了个表用这代码,老是报错,而且关闭不了。
我注释了“If e.DataRow("time") = dt Then”确认OK,问题是出在这里,但不知道如果修改代码,达到我需要的目的。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 10:05:00 [只看该作者]

报什么错啊?看是不是日期问题

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=76935&skin=0

 

[此贴子已经被作者于2015/11/30 10:04:45编辑过]

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/11/30 12:02:00 [只看该作者]

老师,错误提示:调用目标发生了异常。
这个错误无法显示详细信息,而且无法关闭,需要“结束任务”关闭整个程序。

如果注释If e.DataRow("time") = dt Then”,可以正常使用,但我怕有人不小心改到不是今天的数据。


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

代码如下:
Select Case e.DataCol.name
    Case "机型"  '从机型明细表,自动带入标准规格
        If e.DataRow.IsNull("机型") Then
            e.DataRow("订单规格_控制型式") = Nothing
            e.DataRow("订单规格_主轴") = Nothing
            e.DataRow("订单规格_平衡方式") = Nothing
            e.DataRow("订单规格_冲屑装置") = Nothing
        Else
            Dim dt As Date = Date.Today
            If Tables("生产计划").Current("作业日期") = dt   '自动带入今天创建计划的规格
                Dim dr As  DataRow
                dr =  DataTables("机型明细").Find("[机型] = '" & e.NewValue &  "'")
                If dr IsNot Nothing
                    e.DataRow("订单规格_控制型式") = dr("标准规格_控制型式")
                    e.DataRow("订单规格_主轴") = dr("标准规格_主轴")
                    e.DataRow("订单规格_平衡方式") = dr("标准规格_平衡方式")
                    e.DataRow("订单规格_冲屑装置") = dr("标准规格_冲屑装置")
                End If
            End If
        End If
End Select


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

[此贴子已经被作者于2015/11/30 12:08:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/30 12:20:00 [只看该作者]

会不会是你 Tables("生产计划").Current("作业日期") 的表没有哪怕一行数据?


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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/11/30 13:15:00 [只看该作者]

谢谢老师~!

大意啊,这张表我弄了个“创建日期”列,哎~确实没有“作业日期”列………脑子短路了图片点击可在新窗口打开查看

 回到顶部