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



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

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

子表单设置有控制源作为查询,用于查找与主表单对应的联系人ID的地址记录

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

  1. 右键单击设计视图中的表单,然后选择"表单页眉/页脚"。将同时显示页脚和页眉部分
  2. 将所有表单控件移动到页眉。这可以通过选择所有控件并将它们拖动到标题来集体完成
  3. 对于"细节"one_answers"页脚"部分,将"可见"设置为"假"。(可选(折叠剖面以不占用垂直空间

就是这样。标头始终可见,包括控件。当记录集为空时,控件仍然可以获得焦点,但不允许按键等。按钮和其他动作控件保持启用状态。

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


洞穴

由于所描述的行为(,即当AllowAdditions设置为False时,表单详细信息部分为空记录集隐藏(是Access表单固有的,因此任何解决方案都将涉及可能会改变子表单正常预期行为的变通方法。任何此类不良行为都可能存在解决方案,但需要使用表单事件和额外编程进行更广泛的处理。这个解决方案并不涵盖所有这些条件。

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

最新更新