以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19746)

--  作者:jann
--  发布时间:2012/5/20 10:02:00
--  [求助]

在设计数据库时,表达式列的值用其它表中的数据填充。比如,有两个表,一个是入库单表,另一个是产品表。操作入库单表,填了“产品编号”列的值,能否将“产品名称”列设置为表达式列,并用产品表中的“产品名称”自动填充。


--  作者:don
--  发布时间:2012/5/20 11:17:00
--  

引用父表数据

很明显,订单表中的单价数据应该来自产品表中的单价列,所以该列的表达式为:

Parent(po).单价

还记得"po"是什么吗,是我们在产品表和订单表之间建立的关联的名称,我们用它来明确在有多个父表的情况下,到底引用的是哪一个父表的数据。

如果订单表只有一个父表,那么表达式可简写为:

Parent.单价

因为示例文件中的订单表,有两个父表,分别是产品表和客户表,显然这里的po是不能省略的。

重要提示:

如果子表要引用父表的数据,那么对于父表的关联列,应该在列属性设置中,将其属性“禁止重复”设为True,也就是禁止在父表关联列输入重复内容。因为此时父表和子表之间就必须是严格的一对多关系,理由很明显,如果不是一对多的关系,而是多对多的关系,子表在引用数据的时候,就不知道该引用父表中哪一条记录的数据了,从而出现错误提示。