繁体   English   中英

在VBA Access中动态填充有其他子表单的子表单

[英]SubForm that is dynamically filled with other subforms in VBA Access

我想创建一个包含动态创建的子表单列表的弹出表单。 子表单的数量由用户在父表单中确定。

这是一个草图来说明我想要做什么。 用户可以将“ Num Branches”的值更改为2到10之间。此数字又反映在下面的可滚动框中创建的子表单的数量中。 这些子表单都来自同一表单,我用红色将其概述。 在此处输入图片说明 我有一些关于如何执行此操作的问题

  • 一个子表单可以有多个吗?
  • 如果上面的问题不存在,并且我必须动态创建每个控件,那么我是否需要关注此答案中提到的754个动态创建的控件限制https://stackoverflow.com/a/31301469/7254514
  • 有人可以给我一个循环示例,演示如何在可滚动框内全部动态创建这些子表单吗? 我想在每个for循环中唯一会改变的属性是“ top”属性。

您可能不想动态创建子窗体控件(因为创建控件=切换到设计视图,需要对数据库的排他锁,等等)。

您不能将连续表单与子表单的多个实例一起使用,因为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM