根据组合框选择更改访问表单字段

Change Access form fields based on combo box choice

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

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 时,新可见的字段(在 record1 出现的 Option2 下)对所有其他记录仍然可见.

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

如何实现?

更新:

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

这里确实有 2 个选项,这取决于您的表单设置方式。您可以使一些可见而另一些不可见,或者只使用 3 个通用框。如果您的表单绑定到 table,则您只能使用选项 1。如果未绑定(IMO,这是正确的方法,因为它给您 much 更灵活),你可以使用任何一个。

如果你的表单是绑定的,你只需要在下拉框的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 的顶部。

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