以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多条件删除  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23371)

--  作者:lxhmax
--  发布时间:2012/9/10 15:15:00
--  [求助]多条件删除

 

   请问下,表1跟表2的第一列,第二列,第三列的数据都一样的时候,将表1的该条数据删除后,表2也跟着删除!

 

     麻烦各位看看这个代码怎么写~!谢谢啦!


--  作者:狐狸爸爸
--  发布时间:2012/9/10 15:48:00
--  

如果有关联:

http://www.foxtable.com/help/topics/2238.htm

 

 

如果没有关联:

http://www.foxtable.com/help/topics/2490.htm

 


--  作者:lxhmax
--  发布时间:2012/9/10 15:57:00
--  

谢谢狐爸~

 

  这个只有根据一个产品编号,加多两个条件要怎么写,就是我一条数据要通过3个条件才能定位!


--  作者:狐狸爸爸
--  发布时间:2012/9/10 15:59:00
--  

呵呵,你又来了,你可以跨表引用合成三列条件,可以跨表更新合成三列条件。

同步删除就不行了?

你自己主动点,你不要总是等者别人帮你全部写好,至少自己先去写,我们是答疑解惑,不是帮你写代码的啊。

 

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

[此贴子已经被作者于2012-9-10 16:01:24编辑过]

--  作者:lxhmax
--  发布时间:2012/9/10 16:01:00
--  
嘻嘻~我错了!好叻!
--  作者:狐狸爸爸
--  发布时间:2012/9/10 16:03:00
--  
这就对了,最重要的是先去做,遇到问题再解决,坐等别人写好的代码,是不会有进步的。
--  作者:lxhmax
--  发布时间:2012/9/10 16:39:00
--  

Dim dr As DataRow = DataTables("检测项目明细").Find("委托编号 = \'" & e.DataRow("委托编号") & "\'and 样品编号 = \'" & e.DataRow("样品编号") & "\' and 加载项目 = \'" & e.DataRow("检测项目") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End If

 

狐爸,这样子我可以删除符合三个条件的数据,但是表1表2只能同时删除一条数据,现在有个问题就是,在表1这条数据是唯一的,在表2这条数据有很多子项目,这些只能删除其中的一条!

 

其实就相当于关联表的删除,要把所有子项目都删了,这个要怎么弄


--  作者:狐狸爸爸
--  发布时间:2012/9/10 16:47:00
--  

方法一: 

Dim drs As List (of DataRow)
drs = DataTables("检测项目明细").Find("委托编号 = \'" & e.DataRow("委托编号") & "\'and 样品编号 = \'" & e.DataRow("样品编号") & "\' and 加载项目 = \'" & e.DataRow("检测项目") & "\'")
For Each dr  As DataRow In drs
    dr.delete
Next

 

方法二:

DataTables("检测项目明细").DeleteFor("委托编号 = \'" & e.DataRow("委托编号") & "\'and 样品编号 = \'" & e.DataRow("样品编号") & "\' and 加载项目 = \'" & e.DataRow("检测项目") & "\'")

 

[此贴子已经被作者于2012-9-10 16:47:17编辑过]

--  作者:lxhmax
--  发布时间:2012/9/10 17:01:00
--  
可以了~~谢谢狐爸!
--  作者:狐狸爸爸
--  发布时间:2012/9/10 17:08:00
--  

方法一是错的,应该:

 

Dim drs As List (of DataRow)
drs = DataTables("检测项目明细").Select("委托编号 = \'" & e.DataRow("委托编号") & "\'and 样品编号 = \'" & e.DataRow("样品编号") & "\' and 加载项目 = \'" & e.DataRow("检测项目") & "\'")
For Each dr As DataRow In drs
    dr.delete
Next