我需要将销售数据从外部源导入Access数据库。生成销售报告的系统允许我在指定的日期范围内导出数据,但该数据可能会因更新,报告的报告数据等而发生变化。我想循环遍历CSV的每一行并查看该行是否已存在。如果确实如此,请忽略它;如果它没有向销售表添加新记录。
除非我误解它,否则我不相信我可以使用DoCmd.TransferText,因为数据结构与我导入它的表不匹配 - 我只是想导入文件中的几个列
我最好的选择是什么(1)访问我文件中的数据以进行循环,以及(2)将给定行的内容与给定表进行比较以查看它是否已存在?
答案 0 :(得分:1)
考虑直接使用Access SQL查询csv文件,选择所需的列并运行NOT IN
/ NOT EXISTS
/ LEFT JOIN ... NULL
个查询以避免重复。
INSERT INTO [myTable] (Col1, Col2, Col3)
SELECT t.Col1, t.Col2, t.Col3
FROM [text;HDR=Yes;FMT=Delimited(,);Database=C:\Path\To\Folder].myFile.csv t
WHERE NOT EXISTS
(SELECT 1 FROM [myTable] m
WHERE t.Col1 = m.Col1); -- ADD COMPARISON FIELD(S) IN WHERE CLAUSE