以文本方式查看主题
- 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
--
|