以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:删除关联表中相关行的代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2698)

--  作者:yangming
--  发布时间:2009/5/6 9:35:00
--  请教:删除关联表中相关行的代码?
我的意思是:由于员工档案表还有二个关联表,一是"个人简历",另一个"成员",所以在很执行下面公式时会出现提示,让我先删除关联表中的相关行后再执行,
请教,删除关联表相关行的代码如何写?
DataTables("员工档案").DeleteFor("[是否转移] = True")

说明一下,关联表是以工号做关联的

--  作者:狐狸爸爸
--  发布时间:2009/5/6 9:41:00
--  
也就是在员工简历表中删除工号等于选定行的记录:


DataTables("个人简历").DeleteFor("[工号] = \'" & Tables("员工档案").Current("工号") & "\'")
--  作者:yangming
--  发布时间:2009/5/6 10:26:00
--  
DataTables("个人简历").DeleteFor("[工号] = \'" & Tables("员工档案").Current("工号") & "\'")
DataTables("家庭成员").DeleteFor("[工号] = \'" & Tables("员工档案").Current("工号") & "\'")
DataTables("员工档案").DeleteFor("[是否转移] = True")

我做了这样的按钮公式,可是他还是提示说家庭成员表中有关联,要删除,什么原因?

--  作者:狐狸爸爸
--  发布时间:2009/5/6 10:33:00
--  

你的代码,前两行是针对当前选定行的,而第三行是针对是否转移为True的行,前后不匹配。

Dim drs As List(Of DataRow) = DataTables("员工档案").Select("[是否转移] = True")
For Each dr As DataRow In drs
    DataTables("个人简历").DeleteFor("[工号] = \'" & dr.Current("工号") & "\'")
    DataTables("家庭成员").DeleteFor("[工号] = \'" & dr.Current("工号") & "\'") 
    dr.Delete()   
Next


--  作者:mr725
--  发布时间:2009/5/6 10:35:00
--  
帮助中的:如果需要一次操作,即可同时删除父行和对应的子行,可以参考下面的代码:

Dim dr As DataRow = DataTables("产品").DataRows(0)
For Each
sr As DataRow In dr.GetChildRows("订单")
    sr.Delete()

Next

dr.Delete

[此贴子已经被作者于2009-5-6 10:37:04编辑过]

--  作者:yangming
--  发布时间:2009/5/6 10:38:00
--  
谢谢贺老师!
--  作者:yangming
--  发布时间:2009/5/6 10:44:00
--  
用了四楼代码后出现错误的提示

图片点击可在新窗口打开查看此主题相关图片如下:删除行错误.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2009/5/6 10:51:00
--  
Dim drs As List(Of DataRow) = DataTables("员工档案").Select("[是否转移] = True")
For Each dr As DataRow In drs
    DataTables("个人简历").DeleteFor("[工号] = \'" & dr("工号") & "\'")
    DataTables("家庭成员").DeleteFor("[工号] = \'" & dr("工号") & "\'") 
    dr.Delete()   
Next


图片点击可在新窗口打开查看

--  作者:yangming
--  发布时间:2009/5/6 10:59:00
--  
八楼的公式成功了,再次感谢!呵呵
--  作者:狐狸爸爸
--  发布时间:2009/5/6 11:14:00
--  
图片点击可在新窗口打开查看