以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187280)

--  作者:lin98
--  发布时间:2023/7/5 13:10:00
--  删除出错
If Tables("表E").Current IsNot Nothing Then
    \'判断用户单击了哪个按钮:
    Dim Result As DialogResult
    Result = MessageBox.Show("注意!!!删除后,数据不可恢复,是不是删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        Tables("表E").Current.Delete
\'        DataTables("表F").Delete
\'\'        Tables("表F").Current.Delete

For Each r As Row In Tables("表F").Rows
    r.Delete
Next
        MessageBox.Show("删除成功!", "提示")
    Else
        MessageBox.Show("已取消删除!", "提示")
    End If
End If

模拟关联,表E(主表)和表F(明细)模拟关联,不做下图的步骤,执行上面删除代码,无法实现同步删除,如何实现同步删除?

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

用下面代码,主表删除一条,明细删除一条,实际明细有10条,只删除一条,还有9条,会造成数据不一致
        Tables("表E").Current.Delete
        Tables("表F").Current.Delete


用下面代码,主表删除一条,明细删除10条,实际明细有10条,还把上个明细表的一条也删除,会造成数据不一致
        Tables("表E").Current.Delete
For Each r As Row In Tables("表F").Rows
    r.Delete
Next






--  作者:有点蓝
--  发布时间:2023/7/5 13:34:00
--  
dim r as row = Tables("表E").Current
DataTables("表F").deletefor("产品编号=\'" & r("产品编号") & "\'")
r.delete

[此贴子已经被作者于2023/7/5 14:30:36编辑过]

--  作者:SbFox
--  发布时间:2023/7/5 14:05:00
--  
dim r as row = Tables("表E").Current
DataTables("表F").deletefor("产品编号=\'" & r("产品编号") & "\'")
r.delete