Foxtable(狐表)用户栏目专家坐堂 → 打开表C时,发生的动作


  共有2901人关注过本帖树形打印复制链接

主题:打开表C时,发生的动作

帅哥哟,离线,有人找我吗?
13796361423
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
打开表C时,发生的动作  发帖心情 Post By:2021/8/1 14:36:00 [只看该作者]

我想在打开表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
   


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
这个命令正好删反了  发帖心情 Post By:2021/8/1 22:28:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/1 23:08:00 [只看该作者]

代码就是删除一样的行,如果加not才是删除不一样的行

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


 回到顶部
帅哥哟,离线,有人找我吗?
13796361423
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
如果删除不一样的行  发帖心情 Post By:2021/8/2 8:39:00 [只看该作者]

如果删除不一样的行, not 加在哪个位置?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/2 8:51:00 [只看该作者]


 回到顶部