【发布时间】:2017-01-25 13:56:38
【问题描述】:
我有一个访问表单,用户可以在其中输入记录数据。
There is a status field that has a combo box with certain values and What I want to happen is that when option 2 is selected, some of the fields change.
例如:
field1, field2 and field3 exist / are visible by default (with option1)
user chooses option2
field1, field2 and field3 are replaced with field4, field5 and field6
我知道这是隐藏字段 1、2 和 3 并显示字段 4、5 和 6 的情况,但我不知道如何实现 - 怎么做?
编辑:
Johnny Bones 的回答是正确的,但它让我注意到了另一种我不知道的行为。
首先,代码工作正常,正确的字段消失并按预期显示。但是,我没有意识到会发生的是,当我离开 record1 时,新可见的字段(在 Option2 下为 record1 出现)对于所有其他记录仍然可见。
如何设置系统,以便当用户导航到新记录时,field1、field2 和 field3 正常显示,field4、field5 和 field6 正常显示隐藏(这是 / 应该是默认视图)。
如何做到这一点?
更新:
我解决了这个问题 - 我在表单的 OnCurrent 属性上添加了一些代码来读取 Options 字段中的任何值,并相应地显示和隐藏每个 field 值。
【问题讨论】:
-
我不知道 OnCurrent 是否解决了这个问题,但您在 OnLoad 事件中也需要类似的逻辑。不是 If/Then,而是只有 6 个语句告诉哪些应该可见,哪些不应该。否则,当您第一次启动页面时,所有 6 个都将可见。同样,OnCurrent可能解决这个问题,但我只是想提出来。
-
我试过了,但这不是我所需要的,因为每条记录都有一个特定于该记录的
Option,如果是Option2,那么我需要fields4 , 5 和 6 对于该特定记录默认可见。 -
我想您可以强制它默认为选项 1,然后根据选择选项 1 时的可见性来设置可见性。或者,在 OnLoad 中将它们的 Enabled 状态设置为 False。这样他们无论如何都不能在框中输入任何内容。在下拉菜单的 AfterUpdate 事件中,将它们全部设置回 Enabled = True。
-
感谢您的建议,但老实说,
If/Then最适合我的特殊需求。