access 2010将数据附加到表中而不覆盖现有记录

时间:2014-02-06 00:11:05

标签: sql ms-access ms-access-2010

很抱歉这个很长的问题/帖子但需要一些帮助,因为我已经搜索了好几天但没有发现任何有用的东西。看起来应该很容易,但是......其他地方

我的(Access 2010)数据库中有table1,它具有现有记录。我有另一个table2,在我运行查询后,它首先删除表2中的数据,然后将新记录导入该表。我定期将导入导入表2,但尚未成功将所有这些记录复制到表1中。

如果table1中不存在记录,我只需要将表2中的记录复制到表1。因此,每次运行查询或vba代码时,都会继续增加表1,而不会复制现有数据。

为了进一步说明,它是来自Outlook GAL的数据,因此每次table2导入需要添加到table1的数据(lname,fname,phone,email),但前提是表1中尚不存在。

我有一个很小的SQL开始,但无法让它正常工作,因为我不确定如何正确地将其他字段添加到此SQL语句中(遗憾的是我不太了解SQL或创建附加内容)查询):

INSERT INTO [Current] ( FirstName )
SELECT DISTINCT tblglobaladdresslistimport.First
FROM tblglobaladdresslistimport LEFT JOIN [Current] ON tblglobaladdresslistimport.First =    Current.FirstName
WHERE Current.FirstName Is Null;

1 个答案:

答案 0 :(得分:0)

这个怎么样:

INSERT INTO [Current](FirstName, LastName, Phone, Email)
SELECT DISTINCT 
    tblglobaladdresslistimport.First
    , tblglobaladdresslistimport.Last
    , tblglobaladdresslistimport.Phone
    , tblglobaladdresslistimport.Email
FROM 
    tblglobaladdresslistimport LEFT JOIN [Current] 
        ON tblglobaladdresslistimport.First = Current.FirstName
            AND tblglobaladdresslistimport.Last = Current.LastName
            AND tblglobaladdresslistimport.Phone = Current.Phone
            AND tblglobaladdresslistimport.Email = Current.Email
WHERE Current.FirstName Is Null
    AND Current.LastName Is Null
    AND Current.Phone Is Null
    AND Current.Email Is Null;

如果我猜错了,请调整列名。假设您没有主键,因此tblglobaladdresslistimport中的数据已经存在,如果Current中有一行对所有列都有相同的值。