以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]三年啦。我注册新号又回来啦。但是我还是新手,求助一个数据引用的问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90155)

--  作者:akilau0012
--  发布时间:2016/9/6 17:01:00
--  [求助]三年啦。我注册新号又回来啦。但是我还是新手,求助一个数据引用的问题。

父表:客户信息目录表   子表:贷款项目台账  两表之间通过 客户名称  关联


现在父表中录入有  联系电话一列。  想在在子表中实现,新增行自动填入父表中 关联的联系电话。


按照帮助说明 在子表的 DataColChanged 时间中 写了这样的代码::



If e.DataCol.Name = "贷款合同号码" Then \'如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
        e.DataRow("联系电话") = Nothing \'那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("客户信息目录表").Find("[客户名称] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("联系电话") = dr("联系电话")
        End If
    End If
End If




但是这样的代码实现的   子表自动引用父表的 联系电话 数据  每次都要重置一下子表的  贷款合同号码  这个列。。

 有没有其他更好的办法,可以直接引用  不用重置列??? 希望各位大大帮忙,本来想贴图的 但是不知道为什么添加附件不能。



[此贴子已经被作者于2016/9/6 17:02:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/9/6 17:31:00
--  
什么意思?
重置之后,字表的电话号码列就有了,并不会自动删除,难道你字表的电话号码列是一个表达式列,如果是的,请改为数据列。
之后子表新增行,也会自动输入的,只要是数据列,一样不会丢失的,并不存在需要反复重置的问题。

还有你获取父表行的代码有点复杂了,可以参考:
http://www.foxtable.com/webhelp/scr/2649.htm
[此贴子已经被作者于2016/9/6 17:33:14编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/9/6 17:33:00
--  
如果你是父表修改电话号码列之后,子表能同步刷新,那么直接用表达式列引用即可:
http://www.foxtable.com/webhelp/scr/0106.htm


--  作者:akilau0012
--  发布时间:2016/9/6 18:54:00
--  
用之间的代码。每次输入父表中的联系电话,子表中的联系电话 不能自动填写。要重置一下客户名称列 才能自动填入。

还是用的您的Parent(po).单价  这个命令最为简单。谢谢啦