【问题标题】:Importing data from 2 spreadheets in Excel to a single table in MS Access [closed]将数据从 Excel 中的 2 个电子表格导入 MS Access 中的单个表 [关闭]
【发布时间】:2014-10-13 16:55:41
【问题描述】:

我正在尝试将 2 个 Excel 电子表格中的数据导入 MS Access 2007 中的单个表中。

电子表格中的数据有一个共同的记录 - 数字。电子表格 2 中的每个数字可能有许多不同的数据集。

电子表格 1 的格式为:

Number    Manager    Location
001       J.Stokes   London
002       B.Johnson  Surrey
003       A.Evans    Bath                                   

电子表格 2 的格式为

Number    Date      Cost
001       4/8/14    £ 123
002       1/11/14   £ 500
002       5/11/14   £ 250
003       12/12/14  £ 350

当我将数据导入 2 个不同的表并在 1 个表中运行附加查询时,我得到以下结果

Number    Manager    Location    Date       Cost
001       J.Stokes   London      
001                              04/08/14   £ 123
002       B.Johnson  Surrey     
002                              01/11/14   £ 500
002                              05/11/14   £ 250
003       A.Evans    Bath
003                              12/12/14   £ 350

我怎样才能把它操纵成下面的形式?

Number    Manager     Location    Date       Cost
001       J.Stokes    London      04/08/14   £ 123
002       B.Johnson   Surrey      01/11/14   £ 500
002       B.Johnson   Surrey      05/11/14   £ 250
003       A.Evans     Bath        12/12/14   £ 350

提前致谢, 抢

【问题讨论】:

  • 我看到的结构是错误的。它应该保持原样,两个表通过一对多关系样式的数字链接。

标签: sql ms-access import vba ms-access-2007


【解决方案1】:

我在每个表上创建了 NUMBER 之间的关系,然后生成了一个简单的选择查询。这会以我想要的形式显示数据。

【讨论】:

    【解决方案2】:

    在我看来,您可能会发现最简单的方法是分别导入表,然后在 Spreadsheet1 上创建一个带有左连接的查询以将它们放在一起。有点像:

    SELECT
      ss1.Number
    , ss1.Manager
    , ss1.Location
    , ss2.Date
    , ss2.Cost
    FROM Spreadsheet1 AS ss1
    LEFT JOIN Spreadsheet2 AS ss2
    ON ss1.Number=ss2.Number
    

    【讨论】:

    • 我不建议使用这种方法,因为 OP 需要了解真正的 DB 规范化过程。数据表示可以稀释表格,而不是将它们堆在一起。
    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多