数据导入有关问题

数据导入问题
1.表A
    ID(主键)   姓名     手机号
        1             张三
        2             李四
        3             王五
        4             张三

    表B
                      姓名       手机号
                      张三         138
                      李四         139
                      王五         137  
                      赵六         133

用表B的手机号更新表A的手机号,或插入数据,表A中的姓名可能重复,如何做?

需要的结果如下:

    ID(主键)   姓名     手机号
        1             张三       138
        2             李四       139
        3             王五       137
        4             张三       138
        5             赵六       133


2.我其实要做的是数据导入,从Excel导入access数据库,表B是Excel导入生成的临时表,然后更新主表A,用Delphi实现.
    有没有更好的办法导入数据?


从   "其他数据库开发   Access   区 "   得到的答案:
 
update   a   inner   join   b   on   a.姓名=b.姓名   set   a.手机号=b.手机号;

INSERT   INTO   a(姓名,手机号)   SELECT   b.姓名   ,   b.手机号   FROM   b   WHERE   姓名   not   in   (SELECT   姓名   FROM   a);


但主键ID(非自增字段)不充许为空,如何解决?

------解决方案--------------------
把字段改你自增列,倒入数据完成之后再改回去!
------解决方案--------------------
你的id号必须按顺序排列吗?
如果可以的话,你的id号就做成一个流水号,用代码控制自动添加。

而且你的这两张表有点问题
只用id号你无法将重名问题解决,在更新的时候会出现导入错误的