vba - 如何将结果集中的值分配给表单中的字段?
问题描述
我有一个返回 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
所以,在 myMyQuery
中,返回的值是 Name 它看起来像SELECT Name FROM...
。该查询仅返回一列,我想获取这些值并填充我的表单Field
列。
解决方案
您不能在未绑定的表单中创建多行。
在表单中填充“行”的方法是将表单的RecordSource设置为表或查询(“绑定表单”)并将表单详细信息部分中的文本框等控件“绑定”到该查询的字段设置它们ControlSource属性添加到该查询的字段的名称。不需要 VBA。
在您的场景中,表单应该绑定到MyQuery
,详细信息部分应该包含一个绑定到 field 的文本框Name
。
推荐阅读
- mysql - 如何将表情符号输入 MySQL 数据库?
- python - 我正在努力找出这段代码有什么问题
- apache - Apache 2 - 从同一个 Apache 服务器部署 Angular-SPA 和 WSGI (Django) 应用程序
- python - pcolor 绘制翻转数组
- mongodb - MongoDB 多字段 $lookup 性能
- java - 仅使用一个分号在 Java 中旋转 int 数组
- java - JAVA:对链表中相邻的重复值进行排序
- c - 递归调用c创建链接列表
- azure - 从 Azure for Students 迁移到随用随付
- mysql - 如何修复“错误:MySQL 意外关闭。”?