将 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仅更新特定工作表中的链接,而不是整个工作簿?