我想创建一个包含动态创建的子表单列表的弹出窗体。子表单的数量由用户在父表单中确定。
这是一个草图来说明我想要做的事情。用户可以将“Num Branches”的值更改为2到10.此数字又反映在下面的可滚动框中创建的子表单的数量中。子表单都是相同的,我用红色表示它们。 我有几个关于如何做到这一点的问题
答案 0 :(得分:2)
您可能不希望动态创建子窗体控件(因为创建控件=切换到设计视图,需要对数据库进行独占锁定等)。
您不能使用具有子窗体的多个实例的连续窗体,因为Access不允许连续窗体上的子窗体控件。
我的方法是在窗体上放置10个(最大)子窗体控件,将它们全部隐藏,并动态地将它们分配给特定的源对象。
伪代码:
Dim numBranches As Long
Dim i As Long
For i = 1 to numBranches
Me.Controls("subform" & i).Visible = True
Me.Controls("subform" & i).Form.Filter = "branch = " & i 'Appropriate filter here
Me.Controls("subform" & i).Form.FilterOn = True
Next i