【问题标题】:Import Excel Spreadsheet into Existing MS Access Tables将 Excel 电子表格导入现有的 MS Access 表
【发布时间】:2013-10-24 00:58:47
【问题描述】:

我有一个 Access 数据库。这是几个表的设置。

id - companyID(自动编号)PK、公司(文本)、名字(文本)、姓氏(文本)

category - companyID(number) 组合PK与category、category(文本)

salesmen - companyID(number) 组合PK与code,code(文字)

id 和 category 之间以及 id 和 salesmen 之间是一对多的关系。

如果我有一个包含 company、firstName、lastName、category1、category2、category3、salesman1、salesman2 列的电子表格,如何将这些列导入到相应的表中?

我的第一个想法是导入电子表格,然后将公司、名字和姓氏附加到 id 表中。然后我会将导入的电子表格与 id 表连接起来,以创建一个包含所有电子表格列以及自动生成的 companyID 的新表。然后我可以将 companyID 和 category1 附加到类别表中。然后对第 2 类和第 3 类执行同样的操作,依此类推。

如果我要导入很多电子表格,这似乎真的很复杂。此外,将导入电子表格的人不是程序员,因此她希望它尽可能方便用户使用。

有没有更好的方法来导入这些电子表格?

谢谢!

【问题讨论】:

    标签: excel ms-access import ms-office


    【解决方案1】:

    我要做的是创建另一个表来导入原始数据,然后INSERT 将那里的数据导入到相关表中。

    DoCmd.RunSQL ("DELETE * FROM ImportDataTable;")
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "ImportDataTable", "C:\exceldata.xls"
    

    Access VBA 中的第二行将数据导入到名为 ImportDataTable 的表中(ImportDataTable 列名称应为 F1、F2、F3 等。 然后对某些 ImportDataTable 数据需要进入的每个表使用附加查询 (INSERT INTO)。所有这些代码都可以放在表单上的按钮后面,这样用户只需在有新数据时按下按钮。

    【讨论】:

    • 如何确保我在 id 表中添加一行时获得的 companyID 自动编号与我插入到类别表中的 companyID 匹配?我仍然不确定如何将 companyID 添加到类别和销售人员表中。有没有办法提示允许用户选择要导入的 Excel 文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多