如何在VBA中基于另一个组合框值更改组合框的可见性



我现在正在使用Microsoft Access。

我正在尝试基于另一个组合框值来填充一些组合框。例如,第一个组合框被称为cmb_BoxValue,其中它的数字为1-20,其余组合框的名称为cmb_Box1,直到cmb_Box20。一旦用户选择了所需的组合框数量,使用AfterUpdate子框将允许可见性=基于该值的True。如果选定的值为3,则cmb_Box1、cmb_Box2和cmb_Box3 Visible=True。我成功地使用了一个选择的案例,如下所示:

Private Sub cmb_BoxValue_AfterUpdate()
Dim Size1 As Integer
Size1 = Me.cmb_BoxValue.Value
Select Case Me.cmb_BoxValue
Case 1
Me.cmb_boxBox1 = True
etc...

但我觉得这是非常重复的,不是最理想的解决方案。我觉得for循环是理想的解决方案,但我不确定如何处理它。谢谢

由于组合框具有带数字后缀的类似名称,因此可以在递增索引循环中动态构建组合框名称,并测试索引是否为<=cmb_BoxValue输入以设置Visible属性:

For x = 1 to 20
Me.Controls("cmb_Box" & x).Visible = x <= Me.cmb_BoxValue
Next

最新更新