这篇是读了网上文章之后整理的。
问题:
有一个db1.mdb,其中有一个表tbl1,表中有两个字段id和name。
另外还有一个db2.mdb,其中有一个表tbl2,表中也有两个字段id和name。
现在想用db2中的tbl2的name去更新db1中的tbl1的id相同的name。
(比如有一个工人名单,有工人编号和工人姓名,现在换了一批工人,自然也就把工人姓名更新了。财务为图方便,想用这份更新了的工人名单去更新他们的工资表。那工人名单就是db1,工资表就是db2。)
sql语句这样写:
strsql=”UPDATE tbl2 INNER JOIN [MS Access;PWD=密码;DATABASE=db1.mdb的全路径].tbl1 AS tmp1 ON tmp1.id=tbl2.id SET tbl2.name=tmp1.name”
极端一点的还可以考虑这样写:
strsql=”UPDATE [MS Access;PWD=密码;DATABASE=db2.mdb的全路径].tbl2 AS tmp2 INNER JOIN [MS Access;PWD=密码;DATABASE=db1.mdb的全路径].tbl1 AS tmp1 ON tmp1.id=tmp2.id SET tmp2.name=tmp1.name”
很明显,[MS Access;PWD=密码;DATABASE=db2.mdb的全路径].tbl2 和AS tmp1这两个内容很重要。
写完了后,可以用Docmd.runsql strsql执行。
UPDATE之外,其他操作可以依照着写。