>我有以下两个访问表
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 文件,我想将其"吸"(导入)到事件表中。问题是数据需要在名称/emp_id字段上关联,我不确定执行此操作的最佳方法。
Excel_sheet
Employee Name Notes
bob smith feel asleep while driving
访问表使用对"雇员"表的引用,而 Excel 工作表使用名称。我有哪些选项可以将此 Excel 工作表引入"事件"表,并将姓名(鲍勃·史密斯)转换为"员工"表中的关联 ID?
假设两个数据集中的名字拼写一致,并且每个名字只有一个人存在,请尝试:
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];"
建议您使用数据库的副本进行测试。
名称是一个保留字,实际上不应该使用保留字作为任何内容的名称。