现在有表A和表B,表A的ID与表B的AID是关联的
要求表A增加行时,自动往表B中增加行,且表B的AID = 表A的行的ID
表B中自动增加的行不允许直接删除。
但表A中的行删除时,表B中的自动增加的行可以级联删除。
表A的datacolchanged事件:
select case e.datacol.name
case "Code"
dim dr as datarow = datatables("B").find("AID = '" & e.datarow("ID") & "'")
if dr is nothing then
dim ar as datarow = datatables("B").addnew
ar("AID") = e.datarow("ID")
ar("Auto") = true '这是用来标记是否自动增加的
end if
end select
表B的BeforeDeleteDataRow事件
if e.datarow("Auto") = true then
e.cancel = true
end if
但是结果不是我想的这样,实际情况是:
1、表A中的行删除了,但表B中的行并没有级联删除。
2、如果把表B的BeforeDeleteDataRow事件去掉,表A和表B可以做到级联删除,但没有实现表B中自动增加的行不能主动删除的本意。
如何修改呢?
[此贴子已经被作者于2017/2/6 14:30:13编辑过]