Ms access 如何在Access中输入多对多表的数据?
我确信这是一个基本的问题,但我正在努力解决访问问题 在我的例子中,我有两个表:Student和Subject,由一个连接表StudentSubject链接。学生和学科之间存在多对多关系,因为一个学生可以学习多个学科,一个学科可以被多个学生学习 我不清楚的是如何输入数据,这样每个学生都可以学习多个科目。我创建了一个表单,其子表单如下所示: 当我试图在“SubjectName”字段中输入任何内容时,它会显示“字段无法更新”。如果我按“OK”,消息就会消失,我可以在字段中键入一些内容,但一旦我尝试在下面的记录中为“Subject”输入其他内容,同样的错误就会出现。然后,当我按下箭头转到表单上的下一条记录并保存表单时,任何表中都没有任何更改 以下是三个表及其关系: 我不太确定我在这里做错了什么,但最终目标是我可以输入一个学生,也可以输入他们正在做的所有科目,这样每个学生的科目列表都会与他们的姓名一起存储。我不知道“字段无法更新”错误是从哪里来的Ms access 如何在Access中输入多对多表的数据?,ms-access,ms-access-2016,Ms Access,Ms Access 2016,我确信这是一个基本的问题,但我正在努力解决访问问题 在我的例子中,我有两个表:Student和Subject,由一个连接表StudentSubject链接。学生和学科之间存在多对多关系,因为一个学生可以学习多个学科,一个学科可以被多个学生学习 我不清楚的是如何输入数据,这样每个学生都可以学习多个科目。我创建了一个表单,其子表单如下所示: 当我试图在“SubjectName”字段中输入任何内容时,它会显示“字段无法更新”。如果我按“OK”,消息就会消失,我可以在字段中键入一些内容,但一旦我尝试在
有人能提供建议吗?对于这种多对多关系,通常有两种不同的观点。一个是你站在学生的角度,另一个是如果你站在主体的角度。 对于学生视图,必须创建一个表单来编辑学生表,并且必须添加一个子表单来编辑详细数据表,即StudentSubject。此详细信息表必须与主窗体中的StudentID同步。通常这已经由向导完成。但是请注意,您只有详细信息表中的ID。要显示可读信息,需要将文本框更改为组合框,并将组合框绑定到基础表。 由于明细表StudentSubject中只有数字,因此无法直接在此框中输入文本。如果SubjectName尚未在表Subject中注册,则必须添加新条目才能选择此项。要动态添加新的文本条目,您可以使用“不在列表中”事件来处理此问题 您需要3张表格:
- 一张学生表格
- 一种科目表格
- 学生主题表的一个表格
这样,根据您是编辑学生(学生栏将被隐藏)还是编辑主题(主题栏将被隐藏),相应的栏将被隐藏。这个问题太宽泛了。具有多对多关系和连接表的数据输入通常非常困难,如果不使用VBA,就无法真正开发用户友好的UI。就我个人而言,我倾向于使用包含所有可能条目的数据表,并使用复选框指示条目之间是否存在可以使用VBA切换的关系。一个常见的替代方案是一个列表框,其中包含可能的条目,可以在其中选中或取消选中条目,但这也需要VBA。