如何在Access中使用子表单时编辑现有记录而不创建新记录?

时间:2017-01-09 11:31:29

标签: vba ms-access database-design access-vba

我有一个存储医疗信息的访问数据库。它包含了相当多的信息,因此我将字段组合成各个表并使用公共主键链接它们。我创建了一个标签样式表单,每个选项卡上都有子表单。

其中一些子表单只包含一个表中的字段,但是有一些子表单包含多个表中的字段。

例如,我有一张保存输血数据的表格和一张保存患者特征的表格。输血表和患者特征表中的一些字段在同一子表单中,但我在其他子表单中也有来自这两个表的字段。

当我尝试使用多个表中的字段将数据插入子表单时,我会收到以下错误。

  

更新或取消更新,无需添加或编辑

  

您向表格请求的更改未成功,因为   他们会在索引,主键或中创建重复值   关系。更改包含的字段或字段中的数据   重复数据,删除索引或重新定义索引以允许   重复输入并重试。

从研究问题我收集这是因为访问尝试为两个表创建一个新记录,但如果已经使用该主键创建了一条记录(从将数据插入到以前的子表单中),它将不会编辑现有记录。

是否有人知道如何获取在此实例中编辑现有记录的访问权限而不是尝试添加新记录?我有VBA的基本技能,但这有点超过我的经验水平。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我使用的是关于拆分表单的一个很长的反应,但我正在度过一段可怕的时间。所以这是我使用子表单的新的和改进的答案。

如果您想为自己的目的https://support.office.com/en-us/article/Create-a-form-that-contains-a-subform-a-one-to-many-form-ddf3822f-8aba-49cb-831a-1e74d6f5f06b

进行简化,请参阅以下子表格信息

第1步 确保您的主表单绑定到正确的表。 为了我的目的,我在我的主表单上使用了一个组合框来搜索。确保组合框中的所有字段参数都正确无误。这包括确保行源正确并且您没有输入控制源。

第2步 在组合框中进行选择后,请勿按Enter键。为了防止人们进入,我在底部创建了一个虚拟按钮,上面写着“保存并刷新”,但它创建了一个消息窗口,弹出“保存成功”。我发现击中输入会产生你不断得到的第一个错误。我不知道如何以更复杂的方式解决这个问题。

出现的任何其他内容我稍后会添加。