【问题标题】:How to use a combo box to fill mutltiple field in a subform in MS-Access?如何使用组合框填充 MS-Access 子表单中的多个字段?
【发布时间】:2019-08-05 12:17:13
【问题描述】:

我在 Access 中有一个子表单,允许用户使用复选框选择记录。除了这个子表单之外,还有一个包含名称列表的组合框。

是否可以使用复选框选择一些记录并通过按下按钮为它们分配名称?

按钮称为 [assignButton] ,子表单称为 [list subform] ,组合框称为 [personCombo] 。

这似乎是一个简单的任务,但我不熟悉触发这种动作的按钮的 VBA 将如何编写?

所有记录都绑定到一个名为“tbl_jobs”的现有表,该表的行数和列数与屏幕截图中的子表单相同

【问题讨论】:

  • 如果您可以添加一些代码 sn-ps 或表单示例会很有帮助
  • 您能否分享您的子表单所基于的表/查询结构?
  • 请看一下我发布的更新
  • 这基本上就是我的表单看起来像“可用人员”组合框来自一个名为“tbl_people”的表
  • 请更具体。 “指定名称”不够具体。您的意思是让每个选定记录的 Person_Name 字段都填充有组合框中的名称吗?

标签: vba ms-access subform


【解决方案1】:

免责声明:以下代码仅用于说明如何更新子表单行,因此不包含错误处理或其他常见流程代码。另请注意,SQL 语句在 WHERE 子句中没有其他条件,主要是因为该问题缺少子表单的实际 RecordSource 查询和/或有关每次加载表单时如何准备和/或过滤子表单表的信息。

Private Sub AssignPerson_Click()
  Dim qry as QueryDef
  Set qry = CurrentDb.CreateQueryDef("", _
    "UPDATE tbl_jobs SET Person_Name = [ParamName]" & _
    " WHERE [Select] = True")
  qry.Parameters("ParamName") = PersonCombo.Value
  qry.Execute

  Me.list_subform.Requery 'Ensure subform displays updated rows
End Sub

对于 Stackoverflow,这个问题确实是“太宽泛”的边界。有多种方法可以实现您想要的,而您的问题是设计、编码理解之一。不过最后这个模型代码还是比较简单的,基本满足要求,我觉得不值得吹毛求疵。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多