以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  想删除明细表的关联内容,怎么办?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27265)

--  作者:随心所欲
--  发布时间:2012/12/26 22:13:00
--  想删除明细表的关联内容,怎么办?

想删除明细表的关联内容,怎么办!

With Tables("出库.出库明细")
    Dim i As Integer
    Dim ti As Integer=.Rows.count-1
    For i=0 To ti
        .Rows.Delete(i)
    Next
End With

提示:调用的目标发生异常
   

看帮助里关于ROWS

Tables("订单").Rows.Delete(0)

Tables("订单").Rows(0).Delete()

区别是什么啊?


--  作者:gsnake
--  发布时间:2012/12/27 6:23:00
--  

i 在变化啊 不要用 rows(i)delete,用删除当前即可

 

.current.Delete

[此贴子已经被作者于2012-12-27 6:28:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/12/27 8:17:00
--  

原因在这里:

 

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

 

更好的方法是:

 

For Each dr As DataRow in Tables("出库").Current.DataRow.GetChildRows("出库明细")

     dr.Delete()

Next

 

 

参考:

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

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

 


--  作者:nblwar
--  发布时间:2012/12/27 8:18:00
--  
With Tables("出库.出库明细")
    For i As Integer = .Rows.count-1 To 0 Step -1
        .Rows(i).Delete()
    Next
End With

--  作者:nblwar
--  发布时间:2012/12/27 8:20:00
--  
还有,你的这个代码好像是删除整个表的数据,不是删除关联数据
[此贴子已经被作者于2012-12-27 8:23:13编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/12/27 8:20:00
--  

最好的办法是在出库的BeforeDeleteDataRow加上代码:

 

For Each dr As DataRow in e.DataRow.GetChildRows("出库明细")

    dr.Delete()

Next