将 Excel 工作表中的数据插入到链接的访问表中

Posted

技术标签:

【中文标题】将 Excel 工作表中的数据插入到链接的访问表中【英文标题】:Insert data from excel sheet into linked access tables 【发布时间】:2013-03-06 21:06:34 【问题描述】:

我有多个(大约 9 个)具有一对多和多对一关系的访问表(所有表都以某种方式链接,有一个主表与所有表具有一对多和多对一关系)。我想将数据从 Excel 表中插入三个表中。

提供的 Excel 表仅包含三个链接表的数据。我怎样才能最好地解决这个问题?我在这里查看的插入查询有多复杂?

非常感谢任何建议。

编辑:

这是我的表结构:

主题

SubjectID   (Autonumber)    Primary Key
MasterID    (Number)        Foreign Key
Description (Text)

大师

MasterID    (Autonumber)    Primary Key
StatusID    (Number)        Foreign Key
StudentID   (Text) 
Description (Text)

状态

StatusID    (Autonumber)    Primary Key
Description (Text)

表关系:

Master (One) --> (Many) Subject
Status (One) --> (Many) Master

Excel 中的数据:

StudentID Subject    Status
JP121     Math       Active
SP223     Bio        Active
JK111     Chem       In Suspense
LS433     Bio        In Active
NP833     Math       In Active
SS777     Chem       Active
BK299     Bio        In Suspense

【问题讨论】:

好吧,如果您尝试使用单个查询,它可能会变得非常复杂。但是,如果您准备将其分解为简单的小查询,我们可以有一个不太复杂的解决方案。总体而言,如果不查看架构和 Excel 数据,很难在解决方案中为您提供帮助。 @TravisG 我绝对准备好将其分解为简单的小查询。我应该如何执行那些小查询?我的意思是按什么顺序? 我建议先去主表。由于主表将接触所有 9 个表,因此一旦主表准备好,您就可以更轻松地构建这些表。您可以采用的另一种方法是 XLS(macro) -> CSV,然后是 CSV -> ACCESS。 @TravisG 通过查询将数据插入 master 插入一条记录的次数与它与其他记录的关系一样多。所以一行将在主表中插入 9 次。 @HansUp 是的,我已经更新了我上面的问题。我用几个表格和一些来自 excel 的数据对其进行了简化 【参考方案1】:

根据你的表结构,我会推荐这个过程

1.) 通过从 Excel 中选择所有唯一 STATUS 来构建 Status 表。

2.) 通过从 Excel 中选择所有唯一的 Subjects 来构建 Subject 表。

3.) 填充这些表后,您可以继续构建您的主表。对于 excel 中的每个student 行,从status 表中获取statusID,从subject 表中获取subjectID

这有意义吗?

关于Status表我的理解是你打算填充Status ID这样的东西

StatusID | Description
---------|------------
   1     | Active
   2     | InActive
   3     | In Suspense

还要添加,Subject 表不需要MasterID 列。相反,您可以在Master 表中拥有SubjectID

【讨论】:

那种。那么,我应该编写一个插入查询来将唯一数据更新到与主表有外键关系的表中,然后更新主表吗?您的第三点确实有道理,但是我将如何获取 ID?我会在更新主表的插入查询中执行此操作吗?另外,就像我之前说的,使用插入语句更新主表为 excel 中的每一行插入了多条记录。似乎它插入了与关系一样多的行。所以 excel 中的第一行被插入了 9 次,其余的以此类推。 是的,状态表是以这种方式填充的。主题表也一样。我现在无法更新任何结构化的表格。我已经有了这些包含数据的 Access 表。现在,我收到了一张包含扁平数据的 Excel 表,我需要将其插入到这些链接表中。它不仅仅是三个 excel 列和三个表,它还有更多。我简化了它,以便更好地解释。

以上是关于将 Excel 工作表中的数据插入到链接的访问表中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Excel VBA仅更新特定工作表中的链接,而不是整个工作簿?

如何查询访问权限并将其链接到excel中的工作表

Excel如何将原始数据表中的数据分类同步到新的工作表中?

Excel VBA将数组变量插入到访问中的单个字段中

无法将Delphi ADOQuery更新或插入到Excel工作表中

删除Excel 中某一Sheet的数据时,提示: “该 ISAM 不支持在链接表中删除数据“