【问题标题】:MS Access: How to Programmatically Add a SubformMS Access:如何以编程方式添加子表单
【发布时间】:2016-03-10 03:39:42
【问题描述】:

有没有办法使用 Access VBA 以编程方式将子表单添加到表单中?我有一个在用户请求时动态生成的临时表。如果可能,我想基于临时表创建一个表单,并将其作为子表单添加到预先存在的表单中。

【问题讨论】:

  • 为什么?为什么不使用现有的子表单并更改记录源和控件在运行时绑定的字段?在我看来,生产应用程序中的设计更改是一种非常业余的做事方式。
  • 您不需要更改设计来设置源对象,它可以在运行时完成,并且子窗体控件就像显示表格或查询一样高兴。
  • 而且,在这种情况下,可以有 3 到 50 多个字段 - 当用户只要求 3 个时,不必要地用 50 多个静态字段使表单混乱,这会导致用户界面不佳。跨度>
  • 问题在运行时显示“添加”,而不是更改,因此我将其视为设计更改请求。

标签: ms-access vba


【解决方案1】:

最好的办法是创建子窗体控件并将源对象设置为表或查询。

Me.NameOfSubformControl.SourceObject = "Query.Query1"
Me.NameOfSubformControl.SourceObject = "Table.Temp"

还可以更新已保存查询的 sql 以引用新的临时表。

【讨论】:

  • @David-W-Fenton 为什么?您将源设置为表或查询而不是表单,因此控件不相关。恐怕你说的不是真的。
  • 这似乎工作得很好。在这种情况下,无需欺骗任何控件。
  • 我看错了。您建议设置子表单的 SourceObject (当然,这是您所说的,但我没有仔细阅读)。我正在删除评论。
最近更新 更多