设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3172|回复: 2

Access挑战Excel第二十二期:级联更新和级联删除

[复制链接]
发表于 2016-5-3 03:01:07 | 显示全部楼层 |阅读模式
       之前一直在想,要不要拿级联更新和级联删除来挑战下呢?崇尚自由的Excel没有这两个属性,所以迟迟没出这道题。不过小妖姐姐不屑地说,万能的VBA可以解决。
       我想,这也代表了相当部分Access初学者的想法吧。不过在我看来,有时候VBA并不是解决问题的最佳方案。一味膜拜代码,反而是本末倒置的做法。

       先看看Access是如何解决这个问题的:
              ---------------------------------------------------------------------------------------------------
       看来还是先科普下级联删除和级联更新的效果吧:
      以表tblEmployee中工号SP00031为例,我们先在tblDailyCheck和tblSuggestion表中,可以看到这个工号对应的记录。


      假定现在需要更改这个工号为SC00031,那么级联更新的效果就是,直接在tblEmployee更改过来就好了。
      请打开frmUpdate,选择这个工号,输入新工号,点击确定后就全部更新过来了(请留意子窗体的工号):

       级联删除效果类似,同样地在tblEmployee删除一条记录,这两个表对应的记录也会被删除。
       ---------------------------------------------------------------------------------------------------
       Excel会不会这样解决呢:
       级联更新……WOW,简单,复制工号,然后在整个工作簿中查找,全部替换……?
       级联删除……复制工号,在每个工作表中自动筛选,删除……?
       在工作表较多的情况下,有没有VBA代码不够用的感觉呢?

       视代码为图腾的Access爱好者,也可以用代码来试试。当然,在Access里使用查询可能比Excel简单一丢丢。不过,如果使用ADO则不见得好多少。
------------------------------------------------------


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

发表于 2016-5-3 13:51:30 | 显示全部楼层
我不过才玩了两天绳结,Roy又不让我玩了……

点击这里给我发消息

发表于 2016-5-3 17:17:46 | 显示全部楼层
经过Roy同学私下耐心地解释,我终于明白了。VBA肯定也是能搞定的,通过一个关键词,如员工工号,遍历所有表删除相关记录就好了。
不过,这题我拒绝接受挑战,因为没有现实意义,员工就算离职了,他所有的记录都要留着的,至少留到仲裁期过掉,通常情况下都是永久保留的,怎么可能删掉?
嘿嘿嘿嘿,我郁闷洗你!


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-3-29 01:48 , Processed in 0.103536 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表