Ms access 没有关联记录时,在子窗体上显示空字段,而不是空的子窗体

Ms access 没有关联记录时,在子窗体上显示空字段,而不是空的子窗体,ms-access,ms-access-2016,Ms Access,Ms Access 2016,我正在使用主联系人窗体上的子窗体显示地址数据。我在子窗体上有一个字段,将地址的所有组成部分的值连接在一起-收件人行、街道和号码、城市、地区等。这只是为了便于查看,但编辑或添加是通过一个弹出式窗体进行的,其中每个地址部分都有单独的字段。无论是否为该联系人添加了任何地址,我都希望子表单的外观相同,但是当获取某个联系人地址的查询没有结果时,子表单将完全为空。我正在寻找一种方法,在添加地址之前显示一个空白字段,并使我的标签保持可见 我尝试添加一个与文本框控件大小和格式相同的矩形,然后将其放在文本框后面,

我正在使用主联系人窗体上的子窗体显示地址数据。我在子窗体上有一个字段,将地址的所有组成部分的值连接在一起-收件人行、街道和号码、城市、地区等。这只是为了便于查看,但编辑或添加是通过一个弹出式窗体进行的,其中每个地址部分都有单独的字段。无论是否为该联系人添加了任何地址,我都希望子表单的外观相同,但是当获取某个联系人地址的查询没有结果时,子表单将完全为空。我正在寻找一种方法,在添加地址之前显示一个空白字段,并使我的标签保持可见

我尝试添加一个与文本框控件大小和格式相同的矩形,然后将其放在文本框后面,但即使是矩形,当没有输入地址时,我的子窗体也完全为空。它是一个只有子窗体背景色的空白框-没有矩形,没有标签,什么都没有


将子窗体与控制源一起设置为查询,以查找与主窗体对应的联系人ID的地址记录。

最简单的解决方案可能是对子窗体使用窗体标题:

  • 在设计视图中右键单击表单并选择“表单页眉/页脚”。将同时显示页脚和页眉部分
  • 将所有表单控件移动到页眉。这可以通过选择所有控件并将其拖动到标题来完成
  • 对于详图和页脚部分,将“可见”设置为False。(可选)折叠截面以不占用垂直空间
  • 就这样。标题始终可见,包括控件。当记录集为空时,控件仍可获得焦点,但不允许按键等。按钮和其他动作控件保持启用状态

    只要子窗体一次只显示一条记录,标题中的绑定控件的行为将与每一行的预期一样


    警告 由于所描述的行为(即,AllowAdditions设置为False时,空记录集的form detail部分隐藏)是Access表单固有的,因此任何解决方案都将涉及可能改变子表单正常预期行为的变通方法。任何此类不良行为都可能存在解决方案,但需要使用表单事件和其他编程进行更广泛的处理。此解决方案并不涵盖所有此类情况


    例如,给定的解决方案将不适用于连续或数据表子窗体,因为标题不会对每一行重复。此外,即使表单属性设置为自动收缩或增长,标题也不会自动调整大小。正确处理调整大小事件可能会解决此问题,但这不仅涉及处理子窗体事件,还涉及处理父窗体的事件,以正确解决此问题。

    您提到了用于编辑地址数据的弹出窗口,但整个子窗体是否为只读(例如,所有控件均已锁定)?根据描述,我认为子窗体也不允许新记录。正确?正确,子窗体本身已启用,但子窗体内的控件未启用,添加/编辑命令按钮除外。子窗体不允许新记录,但如果用户通过弹出窗口添加新记录,则当弹出窗口窗体关闭时,它将显示在子窗体中(我重新查询子窗体)