首页 文章

Subforms集成无法在Access 2010中无缝地工作

提问于
浏览
0

我在MS Access 2010中有一个表单,其中包含两个子表单 . 我已经与表格背后的表格定义了一对一的关系 . 两个子表单都应该用于在相应的表中创建记录,然后更新父表单中的外键 . 但是当我首先填充子表单时,会在相应的表中创建一个条目,但外键不会更新 . 这不应该自动发生吗?或者我应该添加更新父表单字段的代码?

此外,当我开始首先填充主窗体然后跳转到任何子窗体时,我收到以下错误消息:
"You must enter a value in the 'Activations.dbBoxID' field"(激活是此处的主要形式,dbBoxID是外键字段 . )

另一个问题是我不希望子表单更新相应的表,直到还创建主表中的条目(即主表单中的所有必填字段也被填充) .

我是MS Access的新手 . 任何帮助将非常感激!

2 回答

  • 2

    您在这里缺少的概念,以及未向您解释的是,当您在访问中构建主对子关系时,您可以使用表单和子表单建模这些关系,但是您可以将表单基于实际表而不是将这些表连接在一起的查询 .

    换句话说,您的主表单应该基于主表或父表 . 不要加入儿童桌 . 我将再次重复这一点:不要加入子表 .

    因此,您可以将主表单或主表单基于查询,但是在执行此操作时,请不要在该查询中加入子表 . 事实上,在大多数情况下,无论如何在查询中使用和基础表单确实没有优势 . 只需创建表单,并将其基于表格 .

    相同的建议适用于儿童表格 . 您将子表单基于子表 . 您不要使用带连接的查询 .

    您收到错误消息的原因是您有一个基于两个表的主窗体的查询 . 使用强制关系,当您的焦点从主窗体切换到子窗体时,会发生主窗体的记录保存,因此您将收到错误消息 .

    因此,您的错误和问题是由于您将表单基于查询,该查询是在这种情况下不需要的两个表的连接 .

  • 0

    如果首先输入父表单中的数据,则具有子表单的表单可以更好地工作 . 然后子表单可以在父表中连接到每个表中的foreign_key,而不需要任何代码 .

    如果您想让用户首先在子表单中输入记录,在父表单完成/保存之前不要更新它们,您将需要进行一些编码 . 不确定为什么你需要/想要这样做?

    带有账单和付款子表单的客户表单,例如,您可以输入足够的客户数据来创建记录 . 然后可以输入账单和/或付款 .

相关问题