【问题标题】:Change Access form fields based on combo box choice根据组合框选择更改访问表单字段
【发布时间】: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 出现)对于所有其他记录仍然可见。

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

如何做到这一点?

更新:

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

【问题讨论】:

  • 我不知道 OnCurrent 是否解决了这个问题,但您在 OnLoad 事件中也需要类似的逻辑。不是 If/Then,而是只有 6 个语句告诉哪些应该可见,哪些不应该。否则,当您第一次启动页面时,所有 6 个都将可见。同样,OnCurrent可能解决这个问题,但我只是想提出来。
  • 我试过了,但这不是我所需要的,因为每条记录都有一个特定于该记录的Option,如果是Option2,那么我需要fields 4 , 5 和 6 对于该特定记录默认可见。
  • 我想您可以强制它默认为选项 1,然后根据选择选项 1 时的可见性来设置可见性。或者,在 OnLoad 中将它们的 Enabled 状态设置为 False。这样他们无论如何都不能在框中输入任何内容。在下拉菜单的 AfterUpdate 事件中,将它们全部设置回 Enabled = True。
  • 感谢您的建议,但老实说,If/Then 最适合我的特殊需求。

标签: ms-access field


【解决方案1】:

您在这里确实有 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 上。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2014-10-21
    • 2020-09-03
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多