根据组合框选项

时间:2017-01-25 13:56:38

标签: ms-access field

我有一个访问表单,用户可以在其中输入记录数据。

有一个状态字段,其中包含具有特定值的组合框,我想要发生的是当选择选项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下)对于所有其他记录仍然可见

如何设置系统,以便当用户导航到新记录时,field1field2field3正常显示field4,隐藏field5field6(这应该是默认视图)。

如何实现这一目标?

更新

我解决了这个问题 - 我在表单的OnCurrent属性中添加了一些代码来读取Options字段中的值,并相应地显示和隐藏每个field值。 / p>

1 个答案:

答案 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的顶部。

如果表单未绑定,那么您将添加首先检查下拉列表值的代码,然后将文本框中的值写入相应的字段。