如何只向不存在MSaccess的表添加行

时间:2017-04-25 13:58:32

标签: excel ms-access

我的第一篇文章/问题,我已经搜索并尝试了很多选项,但似乎没有什么能够完全符合我的需要。 我正在构建Access DB来管理日程安排工作并将员工分配给该工作。预定作品来自我导入Excel Sheet的{​​{1}}。我无法控制数据的来源或格式。

所以我有一张桌子'tblTempP6',其中有一年的预定工作。有几列确定了一个唯一的条目。

我有另一个表'Access'有一个索引是主键。除了shtP6DataEast条目和索引之外,这两个表是相同的。所以我可以访问特定的条目并分配员工等。

每当我获得一张新的工作表进行导入时,现有的预定工作仍然在工作表中,我不希望重复的条目具有不同的ID。

我尝试过Left Joins但有问题,因为我需要使用4列作为唯一标识符...

有什么想法吗?

谢谢

原谅我的NOOB问题

shtP6DataEast

1 个答案:

答案 0 :(得分:0)

我会尽力回答这个问题,使用tmp作为表的名称,使用新导入的和可能重复的数据,并使用dat作为先前导入的表的名称,永久数据。

有很多方法可以做到这一点,这里是如何使用LEFT JOIN来做的:

SELECT *
FROM  tmp
LEFT JOIN dat  ON  tmp.KeyCol1 = dat.KeyCol1
               AND tmp.KeyCol2 = dat.KeyCol2
               AND tmp.KeyCol3 = dat.KeyCol3
               AND tmp.KeyCol4 = dat.KeyCol4
WHERE dat.IDcol IS NULL

对现有数据执行左连接,然后排除实际与该表匹配的所有行。