以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 如何批量删除Tables集合中某字段关联的全部行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=136512)

--  作者:shilhoue
--  发布时间:2019/6/14 17:30:00
--  [求助] 如何批量删除Tables集合中某字段关联的全部行
如图,假如我在【项目登记】表中想删除任务号R06002的记录,如果同步删除【任务安排】(与[设备安排]表关联)、【样品登记】、【报告登记】中相同任务号的相关记录?
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2019/6/14 18:21:00
--  

直接写代码删除,如

 

http://www.foxtable.com/webhelp/scr/0394.htm

 


--  作者:shilhoue
--  发布时间:2019/6/15 6:39:00
--  
谢谢甜版,不过我不是所有的表都有这个任务号的相关记录,只有【业务登记】、【任务安排】、【设备安排】这三个表有,我按如下代码删除这三个表中的记录,出现String不能转换为Boolen类型的报错信息,请问我这么写代码对么,
Dim rwh As String = Tables("业务登记").Current("任务号")
        For Each tb As DataTable In DataTables
           If tb.Name ="业务登记" Or "任务安排" Or "设备安排" Then
              tb.DeleteFor("[任务号] = \'" & rwh & "\'")
           End If
        Next

[此贴子已经被作者于2019/6/15 7:11:47编辑过]

--  作者:rjh4078
--  发布时间:2019/6/15 7:51:00
--  
不能这么or 
可以这么写
Dim rwh As String = Tables("业务登记").Current("任务号")
        For Each tb As DataTable In DataTables
if "业务登记任务安排设备安排".contains(tb.name) then
           \'\'\'If tb.Name ="业务登记" Or "任务安排" Or "设备安排" Then
              tb.DeleteFor("[任务号] = \'" & rwh & "\'")
           End If
        Next

--  作者:有点蓝
--  发布时间:2019/6/15 8:36:00
--  
dim tns() as string = {业务登记","任务安排","设备安排}
For Each tn as string in tns
    DataTables(tn).DeleteFor("[任务号] = \'" & rwh & "\'")
Next

--  作者:shilhoue
--  发布时间:2019/6/15 14:54:00
--  
谢谢,大神果然是大神。