我有一个访问表单,用户可以在其中输入记录数据。
有一个状态字段,其中包含具有特定值的组合框,我想要发生的是当选择选项2时,某些字段会发生变化。
例如:
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的回答是正确的,但它引起了我的另一种我不知道的行为。
首先,代码正常工作,正确的字段消失并按预期显示。但是,我没有意识到的是,当我离开Option2
时,新显示的字段(在record1
下显示的record1
下)对于所有其他记录仍然可见
如何设置系统,以便当用户导航到新记录时,field1
,field2
和field3
正常显示field4
,隐藏field5
和field6
(这应该是默认视图)。
如何实现这一目标?
更新
我解决了这个问题 - 我在表单的OnCurrent
属性中添加了一些代码来读取Options
字段中的值,并相应地显示和隐藏每个field
值。 / p>
答案 0 :(得分:0)
这里有2个选项,具体取决于您的表单设置方式。您可以使一些可见,另一些不可见,或只使用3个通用框。如果你的表单被绑定到一个表格,你就会遇到选项1.如果它没有绑定(IMO,这是正确的方法,因为它给你很多更灵活),你可以使用其中任何一个。
如果您的表单已绑定,您只需在下拉列表的AfterUpdate事件中添加一些代码:
If Me.MyDropdownName.Value = "Option 2" Then
Me.txtTextbox1.Visible = False
Me.txtTextbox2.Visible = False
Me.txtTextbox3.Visible = False
Me.txtTextbox4.Visible = True
Me.txtTextbox5.Visible = True
Me.txtTextbox6.Visible = True
Else
Me.txtTextbox1.Visible = True
Me.txtTextbox2.Visible = True
Me.txtTextbox3.Visible = True
Me.txtTextbox4.Visible = False
Me.txtTextbox5.Visible = False
Me.txtTextbox6.Visible = False
Endif
您所要做的就是将Textbox4直接放在Textbox1的顶部,Textbox5直接放在Textbox2的顶部,Textbox6直接放在Textbox3的顶部。
如果表单未绑定,那么您将添加首先检查下拉列表值的代码,然后将文本框中的值写入相应的字段。