以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  打开表C时,发生的动作  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170611)

--  作者:13796361423
--  发布时间:2021/8/1 14:36:00
--  打开表C时,发生的动作

我想在打开表C 时, 自动查找和表C 有相同身份证号的表A和表B, 如果表A和表B 有和表C 相同的身份证号的人, 就在表C里删除这个人,请问下面代码如何修改? 这个代码放在哪个控件里?

 


        If DataTables("表A").find("身份证件号=\'" & e.DataRow("身份证号") & "\'")

           DataTables("表B").find("身份证件号=\'" & e.DataRow("身份证号") & "\'")

            IsNot Nothing Then
            DataTables("表C").deletefor("身份证件号=\'" & e.DataRow("身份证号") & "\'")
        End If
   


--  作者:有点蓝
--  发布时间:2021/8/1 20:24:00
--  
设计窗口,添加一个按钮,代码

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源名称"
cmd
.CommandText = "DELETE FROM {表C} WHERE 身份证件号 in (select 身份证件号 from {表A} and 身份证件号 in (select 身份证件号 from {表B})\'"
cmd.ExecuteNonQuery()

--  作者:13796361423
--  发布时间:2021/8/1 22:28:00
--  这个命令正好删反了

我是想在表C 删去的是和表A或表B 一样的行, 留下和表A或表B 不一样的行, 这个命令正好反了, 可以在in 前加not 吗?

 

还有为什么要关掉重打开才有效呢?


--  作者:有点蓝
--  发布时间:2021/8/1 23:08:00
--  
代码就是删除一样的行,如果加not才是删除不一样的行

要刷新数据执行后加载数据即可
……
cmd.ExecuteNonQuery()
datatables("表C").load


--  作者:13796361423
--  发布时间:2021/8/2 8:39:00
--  如果删除不一样的行
如果删除不一样的行, not 加在哪个位置?
--  作者:有点蓝
--  发布时间:2021/8/2 8:51:00
--  
参考:http://www.foxtable.com/webhelp/topics/0688.htm