想要一个列表框显示1-10,但是下拉中显示的内容依赖于另一个列表项
Posted
技术标签:
【中文标题】想要一个列表框显示1-10,但是下拉中显示的内容依赖于另一个列表项【英文标题】:Want a list box to show 1-10, but what is shown in the drop-down is dependent on another list item 【发布时间】:2019-07-02 17:53:25 【问题描述】:我想在包含数字 1-10 的 Access 表单上创建一个组合框(组合框 B)。换句话说,下拉菜单按顺序显示数字 1-10。
但是,下拉菜单中显示的内容取决于组合框 A。
如果x
显示在组合框 A 中,则项目 1-10
应显示在组合框 B 中。
如果 y
显示在组合框 A 中,则数字 1-5
应仅显示在组合框 B 中,或至少阻止某人选择 6
或更大。
如果z
显示在组合框 A 中,则在组合框 B 中不应选择任何内容。
我的编码技能已经生疏了,因为我已经 10 多年没有做过太多事情了。这在 Access 中很容易实现吗,还是我需要一些 VBA 来帮助?
【问题讨论】:
【参考方案1】:假设您的问题不仅仅是一个人为的示例,并且您确实想在组合框中显示整数 1-10
和 1-5
,然后以最简单的形式,您可以使用以下函数评估组合框“A”的After Update
事件和表单的On Load
事件:
Function UpdateComboRowSource(cmbCom As ComboBox, ByVal strVal As String)
cmbCom.RowSourceType = "Value List"
Select Case LCase(strVal)
Case "x": cmbCom.RowSource = "1;2;3;4;5;6;7;8;9;10"
Case "y": cmbCom.RowSource = "1;2;3;4;5"
Case Else: cmbCom.RowSource = ""
End Select
End Function
Private Sub Form_Load()
UpdateComboRowSource ComboB, ComboA.Value
End Sub
Private Sub ComboA_AfterUpdate()
UpdateComboRowSource ComboB, ComboA.Value
End Sub
【讨论】:
以上是关于想要一个列表框显示1-10,但是下拉中显示的内容依赖于另一个列表项的主要内容,如果未能解决你的问题,请参考以下文章
当我们使用 JavaScript 隐藏/显示时清除下拉列表和/或文本框内容当它们被交替选择时