【问题标题】:How to import excel spreadsheet into access and cross reference two tables如何将excel电子表格导入access并交叉引用两个表
【发布时间】:2019-10-15 13:35:32
【问题描述】:

我有以下两个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 表带入事件表并将名称(bob smith)转换为员工表中的关联 ID?

【问题讨论】:

  • 任何解决方案都依赖于两个数据源中具有一致拼写的名称,并且每个名称仅适用于一个人。如果有多个 Bob Smith,你就是 SOL。如果工作表足够简单,请在 Access 中设置一个链接,在名称字段上构建查询连接数据集,然后运行 ​​INSERT SELECT 操作。当您尝试解决特定问题时,请使用代码发布问题。否则,请修复工作表以添加员工 ID。这将是一个查看每一行并输入 ID 的繁琐过程。
  • 已将 excel 电子表格作为新表格导入 access。问题是,如何将这些名称转换为 emp_id 然后进行插入选择?
  • 已经描述了技术。链接或导入 Excel 无关紧要。
  • 从 excel_sheet 中选择 employeeName 作为 emp_id ...我不确定

标签: excel ms-access


【解决方案1】:

假设两个数据集中的名字拼写一致,并且每个名字只有一个人,尝试:

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];"

建议您使用数据库副本进行测试。

名称是保留字,实际上不应该使用保留字作为任何东西的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多