繁体   English   中英

使用vba自动从表中添加数据字段以形成表单

[英]Add data field from table to form automatically using vba

在 Access 数据库中,我有一个拆分表单。 数据表基于查询。 查询的表有时会在字段中增长。

该字段在查询中,但不在表单中,因为它必须在访问表单时从设计视图上的“可用字段”中拖出。

是否有一些代码允许在按下表单上的按钮而不是用户进入设计视图时将字段添加到表单中?

这比让每个用户在设计视图中打开和编辑(可能破坏)数据库更方便。

正如您从评论中看到的那样,已经提出了类似的问题,因此默认答案是即使使用 VBA 代码,表单也必须处于设计模式才能添加新控件 - 您不能在表单视图中执行此操作。 但是,尽管 Access 存在局限性,但通常仍然存在完全合理的需求,仍然需要一个有用的解决方案。

一种潜在的混乱和有限的解决方案是添加隐藏的未绑定控件(即 ControlSource 属性为空),然后可以在表单视图期间绑定和显示这些控件。 首先,在设计时将隐藏的、未绑定的TextBox 和 Label 控件添加到表单中。 这是按钮单击事件处理程序中的一些模板代码。

Private Sub cmdAddFields_Click()
  Dim rs As Recordset2
  Set rs = Me.RecordsetClone
  Dim fld As Field2
  ...
  '* Determine which new fields need to be shown
  set fld = rs.Fields(missingFieldIndexOrName)
  ...
  Me.txtCustom1.ControlSource = fld.Name
  Me.lblCustom1.caption = fld.Name
  Me.txtCustom1.Visible = True
  Me.lblCustom1.Visible = True
  ...
End Sub

很明显,您将被限制为您添加的这些虚拟字段的数量,并且需要一些聪明的方法来确定您缺少的字段是什么,但这可以通过循环遍历 rs.Fields 集合和表单的 Control 集合以匹配名称(例如)。

暂无
暂无

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

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