我有以下两个Access表
Employees
id Name
1 bob smith
2 james bird
3 jane big
Events
id emp_id Notes
1 1 fell down the stairs
2 3 paper cut in the break room
我还有以下Excel文件,我想将它们“吸”(导入)到“事件”表中。问题是数据需要在name / emp_id字段上关联,我不确定做到这一点的最佳方法。
Excel_sheet
Employee Name Notes
bob smith feel asleep while driving
访问表使用对雇员表的引用,而Excel工作表使用名称。对于将Excel工作表导入“事件”表并将其名称(“鲍勃·史密斯”)从“员工”表转换为关联的ID,我有什么选择?
答案 0 :(得分:0)
假设姓名在两个数据集中都是一致的,并且每个姓名只有一个人,请尝试:
INSERT INTO Events(emp_ID, Notes) SELECT ID, Notes FROM excel_sheet INNER JOIN Employees ON Employees.Name=excel_sheet.[Employee Name];
在查询对象中构建该SQL或在VBA中运行:
CurrentDb.Execute "INSERT INTO Events(emp_ID, Notes) " & _
"SELECT ID, Notes FROM excel_sheet " & _
"INNER JOIN Employees ON Employees.Name=excel_sheet.[Employee Name];"
建议您使用数据库副本进行测试。
名称是保留字,实际上不应使用保留字作为任何名称。