Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将excel工作表中的数据插入链接的access表_Sql_Ms Access_Vba_Ms Access 2007 - Fatal编程技术网

Sql 将excel工作表中的数据插入链接的access表

Sql 将excel工作表中的数据插入链接的access表,sql,ms-access,vba,ms-access-2007,Sql,Ms Access,Vba,Ms Access 2007,我有多个(大约9个)具有一对多和多对一关系的访问表(所有表都以某种方式链接,有一个主表具有与所有表的一对多和多对一关系)。我想从excel工作表中将数据插入三个表中 提供的Excel工作表仅包含三个链接表的数据。我怎样才能最好地处理这个问题?我在这里看到的插入查询有多复杂 非常感谢您的任何建议 编辑: 以下是我的表格结构: 主题 SubjectID (Autonumber) Primary Key MasterID (Number) Foreign Key Desc

我有多个(大约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

根据您的表结构,这是我推荐的过程

1.)通过从Excel中选择所有唯一的
状态
来构建
状态

2.)通过从Excel中选择所有唯一的
主题
,构建
主题

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

这有意义吗

关于
Status
表,我的理解是您打算填充
Status ID
类似的内容

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

还要添加,
Subject
表不需要
MasterID
列。相反,您可以在
Master
table

中设置
SubjectID
列,如果您尝试使用单个查询,它可能会变得非常复杂。但是,如果您准备将其分解为简单的小查询,我们可以有一个不太复杂的解决方案。总的来说,如果不查看模式和excel数据,就很难在解决方案中为您提供帮助。@TravisG我已经准备好将其分解为简单的小查询。我应该如何执行这些小查询?我是说按什么顺序?我建议先去主桌。由于主表将涉及所有9个,所以一旦主表准备好,您就可以更轻松地构建这些表。您可以采取的另一种方法是XLS(宏)->CSV,然后CSV->ACCESS。@TravisG通过查询将数据插入到主记录中,插入一条记录的次数与它与其他记录的关系相同。所以一行将在主表中插入9次。@HansUp是的,我已经更新了上面的问题。我简化了它,只使用了几张表和Excel中的一些数据。所以,我应该编写一个insert查询,将唯一数据更新到与主表具有外键关系的表中,然后更新主表?你的第三点说得很有道理,但是我怎么才能拿到身份证呢?我是否会在使用I update Master表的插入查询中执行此操作?另外,正如我前面所说,使用insert语句更新主表会为excel中的每一行插入多条记录。它似乎插入了尽可能多的行,因为它有关系。所以excel中的第一行被插入了9次,其余的行也是如此。是的,状态表就是这样填充的。主题表的方式也相同。我现在无法更新任何结构化的表。我已经有了这些包含数据的访问表。现在,我收到了一张excel表格,其中包含展开的数据,我需要将其插入这些链接表中。它不仅有三个excel列和三个表,还有更多。我简化了它,以便更好地解释。