以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关联列的数据不能删除  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=805)

--  作者:blackzhu
--  发布时间:2008/10/8 21:36:00
--  关联列的数据不能删除
  我上次就问了,关联列的数据不能删除,我觉得有一些问题。如果我在一张表中多输了数据或者输错了,其他列的数据都能删除,唯独关联列的数据不能删除,一直留在哪儿,觉得不舒服。能不能删除的?用什么办法,总不能每次去掉关联删除吧,易表可以的呀。
--  作者:gdtgl
--  发布时间:2008/10/9 1:04:00
--  

修改主表的关联列的值.让子表中没有关联数据...删除.

做设计时.应考虑主表的关联列不可以重复(防止楼主所说的情况出现).

[此贴子已经被作者于2008-10-9 1:08:53编辑过]

--  作者:lxl
--  发布时间:2008/10/9 10:31:00
--  
子表的记录可以随便删除

父表中的记录在子表中没对应数据的时候,可以删除,
但在子表中有对应的记录的时候,则不能删除,否则会造成子表中的记录成"孤儿".

2楼的办法虽然能删除父表记录,但是仍然造成子表中的记录成"孤儿"了
根据实际情况来处理
要么不删除,直接把父表的记录修改正确.(而且确保选中同步更新,子表和父表一起修改)
要么"灭门" 父表 子表的记录全部删除.


另外说明一点无关的:
其实在子表中直接增加记录也可能出现"孤儿".就像石头里面蹦出来的一样.
所以.通常做法是只能在父表中增加关联记录,而不能直接在子表中增加记录.
教程提过这样的方法,代码很简单:
 

DataTables("订单明细").AllowAddNew = False
Tables(
"订单.订单明细").AllowAddNew
= True

这样订单明细就不会出现"孤儿".


--  作者:lxl
--  发布时间:2008/10/9 10:53:00
--  

像订单明细,必须有一个"父亲"(对应的订单)

但是,也有的另外一种情况,允许出现"孤儿"。举个例子:
“订单表”和“客户表”关联.
父表“客户表”中只储存大客户、批发商、长期客户的信息。其他客户的信息不保存。

那么在子表“订单表”中。有的订单能在父表中找到对应的记录,有的就找不到对应记录(成"孤儿")。
这种情况,添加“孤儿”的时候,只能在子表中直接增加记录了。


--  作者:blackzhu
--  发布时间:2008/10/9 13:27:00
--  
以下是引用lxl在2008-10-9 10:53:00的发言:

像订单明细,必须有一个"父亲"(对应的订单)

但是,也有的另外一种情况,允许出现"孤儿"。举个例子:
“订单表”和“客户表”关联.
父表“客户表”中只储存大客户、批发商、长期客户的信息。其他客户的信息不保存。

那么在子表“订单表”中。有的订单能在父表中找到对应的记录,有的就找不到对应记录(成"孤儿")。
这种情况,添加“孤儿”的时候,只能在子表中直接增加记录了。

  理解,我仔细看了一下,可能是处于代码计算的字段不能删除,是不是参与代码计算的列不能删除,只能修改?


--  作者:kylin
--  发布时间:2008/10/9 13:58:00
--  
一定要先删除该记录的所有子表的记录,然后就可以随意删除楼主所说的关联列的数据
5楼的理解是错误的。
--  作者:blackzhu
--  发布时间:2008/10/9 14:24:00
--  
  我再看看。