【问题标题】:How to assign values from a Result Set to fields in a Form?如何将结果集中的值分配给表单中的字段?
【发布时间】:2018-08-28 18:49:04
【问题描述】:

我有一个返回 N 个结果集的查询。我想使用此查询为表单 OnCurrent 上的字段分配值。现在,我的错误是Cannot perform this operation. Run-Time Error 3032

因此,如果我有,假设我的查询中返回了 5 条记录,并且我想逐个进行并在我的表单(数据表视图)中分配一个具有该值的列。

我的方法如下:

Private Sub ConfigureScore()
  Dim resultSet As DAO.RecordSet
  Set resultSet = CurrentDb.OpenRecordset("MyQuery")
  If Not (resultSet.EOF And resultSet.BOF) Then
   resultSet.MoveFirst
   Do Until resultSet.EOF = True
   Me.Field.Value = resultSet![Name]
   resultSet.Update
   resultSet.MoveNext
 Loop
 End If
 resultSet.Close
 Set resultSet = Nothing
End Sub

所以,在我的MyQuery 中,返回的值是名称,它看起来像SELECT Name FROM...。该查询仅返回一列,我想获取这些值并填充我的表单的 Field 列。

【问题讨论】:

  • 为什么不使用绑定表单?

标签: vba ms-access


【解决方案1】:

您不能在未绑定的表单中创建多行。

在表单中填充“行”的方法是将表单的 RecordSource 设置为表或查询(“绑定表单”)和“绑定”控件,如详细信息部分中的文本框将表单的字段设置为该查询的字段,将其 ControlSource 属性设置为该查询的字段名称。不需要 VBA。

在您的场景中,表单应绑定到 MyQuery,详细信息部分应包含绑定到字段 Name 的文本框。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2016-03-01
    • 2017-12-18
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多