首页 > 解决方案 > 当不存在相应的记录时,如何在 Access 2016 中引用子表单的链接子字段?

问题描述

我有一个表格,它基于表格中保存的信息,使用该特定位置唯一的主要位置 ID。我在此表单中有一个子表单,它引用包含存储在此位置的库存的数据,使用主表中的主要唯一位置 ID 进行链接。此子表单具有控件,这些控件使用“链接子字段”位置 ID 在单独的弹出表单中添加数据,这些弹出表单用于添加和存档子表单引用的库存。通过使用 DoCMD 调用传递这些弹出表单,可以访问“链接子字段”,如下所示。

    DoCmd.OpenForm "AddInventoryFormName", acNormal, , , , , Me.SomeChildLinkedValue

只要表中已经有要填充的子表单的库存,上述方案就可以 100% 工作。当我加载一个在子表单库存表中没有条目的位置时,会出现我的问题。我收到一个弹出窗口,指出“无效使用 NULL”,并且子表单显示标题。

我添加了一个隐藏变量来显示链接的“子字段”中保存的位置 ID,以进行调试。此值在成功案例上显示正确的位置 ID,并且在切换到库存表中没有相应位置 ID 的位置时将显示最后一个成功案例。

当不存在相应的记录时,如何在 Access 2016 中引用子表单的链接子字段?

标签: ms-access-2016subform

解决方案


我找到了一个实用的解决方法。我将尝试在下面发布一张“图片”来解释我是如何通过移动元素来修复它的,以帮助其他最终陷入我的子表单困境的人。

我的初始设置:

------------------------------------
| Main form                        |
|  |-------------------------------|
|  | Sub form        | Form Button |
|  |                 --------------|
|  |                               |
|  |-------------------------------|
------------------------------------

使用两个对应表中的位置唯一 ID 将主表单与子表单链接。表单按钮使用库存表中的链接字段嵌套在子表单中,用于库存添加和删除。如果 Main_form.location_ID 存在而 Sub_form.location_ID 不存在,则按钮将不起作用。我通过从子窗体中删除按钮并重新设计界面来修复 NULL 错误问题。

我重新设计的设置:

------------------------------------
| Main form          | Form Button |
|  |-------------------------------|
|  | Sub form                      |
|  |                               |
|  |                               |
|  |-------------------------------|
------------------------------------

这允许用户将新库存添加到站点并允许输入新条目,而无需通过链接的子表单依赖中继。


推荐阅读