【发布时间】:2021-09-10 05:34:48
【问题描述】:
我正在运行一个查询(它返回正确的数据),但是如何循环记录集并使用 VBA 在表单中添加每一行?因为它目前正在重复添加最后一行。
Private Sub buscarReservasFio()
Dim strSQL As String
strSQL = "SELECT * FROM tblReservasFio WHERE fk_solicitacao = " & "'" & arrParameters(0) & "'"
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
If rs.BOF Or rs.EOF Then
'to-do insert
MsgBox ("Insert")
Else
Do Until rs.EOF
DoCmd.GoToRecord , , acNewRec
Me.ds_funcao = rs.Fields("ds_funcao").Value
Me.fk_titulo = rs.Fields("fk_titulo").Value
Me.nr_cor = rs.Fields("nr_cor").Value
Me.nr_peso = rs.Fields("nr_peso").Value
Me.dt_liberacao = rs.Fields("dt_liberacao").Value
Me.dt_baixa = rs.Fields("dt_baixa").Value
rs.MoveNext
Loop
End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
【问题讨论】:
-
P.S.:我需要循环加载每一行的记录集,因为其中一个字段 (Me.nr_peso) 将使用 VBA 重新计算,然后显示给用户手动编辑或确认信息。
-
这毫无意义。表单必须具有 RecordSource 和绑定到字段的控件才能显示多条记录。
-
我没有看到任何 nr_peso 的计算 - 这究竟是什么时候发生的?
标签: vba forms ms-access recordset