Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何根据一张表的条件,更新另一张表的内容

jiangpo  发表于:2009-04-15 22:22:23  
复制

假设表1和表2同样的结构:姓名、职称、部门,表2是临时表。表2中所含的记录比表1中要少,但是姓名全部是表1中都有的。现在要根据表2中的姓名,逐条找到表1中的对应记录,并把表1中职称和部门全部更换为表2中的相应内容。请问各位老师,如何编写这个过程?有几种方法(或思路)?能否提供一个示例的附件?有劳各位老师了,谢谢!

 

Top
捉猫鼠 发表于:2009-04-15 22:53:18

在查询视图中,先将这两张表连接起来,连接属性选全选表2对应表1,在改为更新查询,更新相关字段



ACMAIN.CHM 发表于:2009-04-16 00:20:39
建议学会排版,这样更容易让别人了解你的问题。
 
假设
表1和表2同样的结构:
 姓名、职称、部门,
表2是临时表。
表2中所含的记录比表1中要少,但是姓名全部是表1中都有的。

 
现在要根据表2中的姓名,逐条找到表1中的对应记录,并把表1中职称和部门全部更换为表2中的相应内容。
 
请问各位老师,如何编写这个过程?有几种方法(或思路)?能否提供一个示例的附件?有劳各位老师了,谢谢!
 
如果表中有主键,比如姓名。 则
update 表1 inner join 表2 on 表1.姓名=表2.姓名
set 表1.职称=表2.职称,表1.部门=表2.部门

 
或者利用一下ACCESS的专有函数 DLOOKUP (这个你自己查一下帮助中的说明就明白了)
update 表1 set 职称=DLOOKUP("职称","表2","姓名='"&姓名&"'")
where not isnull(DLOOKUP("职称","表2","姓名='"&姓名&"'"))
 
 

**************
*   一切皆有可能   *
**************


ACMAIN - Access论坛回贴准则(个人)


QQ群 48866293 / 12035577 / 7440532 / 13666209
http://www.accessbbs.cn/bbs/index.php
http://www.accessoft.com/bbs/index.asp
http://www.office-cn.net/vvb/?fromuid=141646
http://www.access-programmers.co.uk/forums

http://www.office-cn.net/home/space.php?uid=141646


jiangpo 发表于:2009-04-16 07:41:30

首先衷心感谢二位老师。关于上面的问题稍微再复杂一点,应该如何解决。

假设

表1和表2同样的结构,并且没有主键:
 姓名、部门、  职称、工资,

 

1.现在要根据表2中的 姓名  和 部门,逐条找到表1中的对应记录,并把表1中 职称 和 工资 全部更换为表2中的相应内容。

 

2.请luowenlong老师,能否费心做一个简单的示例,本人初学者,不大明白。

 

3.本人在直接使用Insert Intoupdate语句的时候,提示“编译错误:缺少结束”,是否语句只有改成如下方式才能执行?

 

DoCmd.RunSQL "update 表1 set 职称=DLOOKUP("职称","表2","姓名='"&姓名&"'")"

或者

 

Dim strsql As String

strsql = "update 表1 set 职称=DLOOKUP("职称","表2","姓名='"&姓名&"'")
where not isnull(DLOOKUP("职称","表2","姓名='"&姓名&"'"))"


CurrentDb.Execute strsql



豆豆 发表于:2009-04-16 09:17:53

请参考下。

 

点击下载此附件

西南风王 发表于:2009-04-16 19:53:26

可直接用如下代码可达到你的要求:

UPDATE 表1,表2 SET 表1.职称=表2.职称,表1.工资=表2.工资 WHERE 表1.姓名=表2.姓名 AND 表1.部门=表2.部门



jiangpo 发表于:2009-04-17 09:00:56
感谢几位老师的回答,问题解决了。

总记录:6篇  页次:1/1 9 1 :