Foxtable(狐表)用户栏目专家坐堂 → [求助]关联表有记录提示不得删除父表记录


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

主题:[求助]关联表有记录提示不得删除父表记录

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


加好友 发短信
等级:幼狐 帖子:130 积分:1141 威望:0 精华:0 注册:2013/6/9 11:20:00
  发帖心情 Post By:2019/2/11 13:47:00 [显示全部帖子]

父表关联的子表行如果是锁定状态,在删除父表行时,关联的子表行无法删除吗?

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


加好友 发短信
等级:幼狐 帖子:130 积分:1141 威望:0 精华:0 注册:2013/6/9 11:20:00
  发帖心情 Post By:2019/2/12 11:44:00 [显示全部帖子]

那在关联中设置同步删除子表数据是有前提条件了,就是子表数据不得锁定,如果锁定,就必须先进行解锁。这样看来还是需要写代码先行判断的。


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


加好友 发短信
等级:幼狐 帖子:130 积分:1141 威望:0 精华:0 注册:2013/6/9 11:20:00
  发帖心情 Post By:2019/2/12 14:03:00 [显示全部帖子]

我的意思是要先判断子表数据是否被锁定,如果锁定,则先进行解锁,然后再执行同时删除子表,如果只是判断是否有子表记录,如果有,确认是否删除,那子表数据如果是锁定的,就算同意删除子表记录,还是无法删除,最后还是会形成垃圾记录。

我本来设置了如下的代码用来删除子表记录,但没有成功

If Tables("父表.子表").Rows.count > 0 Then
    If MessageBox.Show("该记录存在关联的子表数据,确定删除该记录和关联的子表记录?","提示",MessageBoxButtons.YesNo) = DialogResult.Yes Then
        for each r As Row In Tables("父表.子表").Rows
        r.Locked = False
        r.Delete()

        next
        Tables("父表").Current.Delete()
    End If
End If

结果是,子表当中的2条记录,只删除了一条,另外一条未被删除。(我推测是r在删除第一条记录后,第二条记录又变成了第一条记录,但其在循环时会去删第二条记录,但

已不存在了的原因,但奇怪的是,第二条记录的锁定状态又会被解锁了,却没有被删除成功。

 

[此贴子已经被作者于2019/2/12 14:05:29编辑过]

 回到顶部