从1行追加2行,每行包含唯一数据

时间:2017-08-10 19:44:39

标签: sql ms-access

非常新的Access,感谢您的耐心等待:

我有2个表,它们是桥梁支持的记录。支架编号。在其中一个表中,每个支持#都有一行信息,我们称之为tblSupport。在另一个表中,我希望有2行对应于每个支持#,每行对应于桥的一侧或另一侧(例如左,右) - 让我们调用表tblPosts。

我有一个表单,允许用户在tblSupport中输入新支持的记录,包括标识该支持的#。我现在拥有它,所以一旦输入信息并单击“保存”按钮,它就会将该支持的记录添加到表中,并向具有相同支持#的tblPosts添加一行,以便其他用户可以输入有关帖子的数据为了那个支持。

每次用户在tblSupport(通过表单)输入新支持的数据并单击“保存”时,我想向tblPosts添加2行,两者都具有相同的支持#,但在另一个名为“Side”的字段中我想要一行显示'Left',另一行显示'Right'。那么tblPosts就可以为下一个用户输入单个支持的左侧和右侧帖子的数据。

有关如何执行此操作的任何提示?如果我需要澄清任何内容,请告诉我

2 个答案:

答案 0 :(得分:0)

这将是两个SQL INSERT操作。但必须确保首先保存父记录。假设SuppID是文本类型字段,例如:
If Me.NewRecord Then DoCmd.RunCommand acCmdSaveRecord CurrentDb.Execute "INSERT INTO tblPosts(SuppID, Side) VALUES('" & Me.SuppID & "', 'Left') CurrentDb.Execute "INSERT INTO tblPosts(SuppID, Side) Values('" & Me.SuppID & "', 'Right') End If
真正的诀窍是找出将此代码放入的事件。也许SuppID textbox AfterUpdate。

答案 1 :(得分:0)

这里的方法可以改进。如果表单在用户保存支持记录时在行表中插入一行,则在第二个表中生成一行,该行仅包含外键而不包含实质数据。处理此问题的更好方法是,当用户需要实际记录有关帖子的数据时,仅在post表中生成行。然后你就没有任何行,没有数据。

首先,将现有的保存按钮更改为仅将记录添加到tblSupport。然后,您将创建第二个表单,用于输入tblPosts的数据,并将其作为subform嵌入到现有表单中,或者添加一个按钮,例如"添加帖子记录"打开第二个表单的现有表单。我使用子表单。

使子窗体工作的关键是设置主/子链接字段。你会在"数据"中找到它。子窗体属性的一部分,如下所示:

enter image description here

你会使用你的#34;支持#"我的例子中的ID字段" HRS_Pkey"。这使用"支持#"设置两个字段之间的关系。用于链接两个表中的记录的值。当用户将数据输入子表单时,它将被添加到子表中,并带有相应的"支持#"值。您可以按照自己喜欢的方式设计子表单;我倾向于使用数据表子表单,但由于您总是希望每个父记录有2个子记录,因此您可能需要更静态的内容。