小弟用access2000来做后台数据库,现在碰到一个这样的问题.如:
A 表:BH    Name
1   aaaa
2   bbbb
3   cccB表:
Bh   Name   Nl    
1    cidid  23
2    oiwe   53
3    oeie   67现在用A表Name字段的值来更新B表Name字段的值.A表和B表BH是相等的.
在Access中,不支持用Where来直接更新B表的记录,要通过 域函数(DLookUp)来操作.在ACCESS的查询中,用这个函数是可以实现.但把这个代码放到VB中就不能执行了.因为DlookUp这个是ACCESS的专用函数,ADO不支持,怎么办呢?另外,在access911.net上看到可以用Inner Join来完成这个操作,但我怎么写都是不行.我是这样写的:
Update B Inner Join a On (B.bh=A.BH) Set B.Name=A.Name
就是执行不了..求各位大侠们帮忙看看...

解决方案 »

  1.   

    UPDATE B LEFT JOIN A ON [B].[BH]=[A].[BH] SET B.Name = [a].[name]
    WHERE (([b].[bh]=[a].[bh]));
      

  2.   

    用Join时,只能从表中来更新一个表,如果要从一个动态查询中就不可以了。如:
    Update a Inner Join (Selct aa,bb,From b) As b On a.BH=B.BH Set a.aa=b.aa,a.bb=b.bb像这样就不行了。真是晕。
      

  3.   

    update b.name=a.name
    from a,b
    where a.bh=b.bh
      

  4.   

    update b set b.name=a.name
    from a,b
    where a.bh=b.bh
      

  5.   

    自己用Inner Join 搞定了