GenraReport_Click()是在报告中按下按钮时调用的主要功能。
现在我创建了一个记录集rs来循环Temp的每个记录,由字段Item。 它的确有效,问题是当我将功能价格调整为必须与现场价格相同时。
当我尝试拨打rs!price(或rs![price]我试过两次)问题来了,它告诉我没有记录。我在第一个循环结束时放了一个movefirst调用,再次使用新函数启动。
(我尝试用价格而不是项目进行主循环,它起作用,因此它不是表格而不是语法问题。它可以是什么?
答案 0 :(得分:1)
您的Do Until
循环可能超过记录集中可用的记录数,因此编译器在“No Current Record”中出错。通常,循环记录集的正确方法是将迭代限制设置为Recordset EOF属性:
Dim rs As Recordset
Dim s As String, i As Integer
Set rs = CurrentDb.OpenRecordset("temp")
rs.MoveLast
rs.MoveFirst
s = "": i = 1
If rs.RecordCount > 0 Then
Do While Not rs.EOF ' OR Do Until rs.EOF
Select Case i
Case 1
s = CStr(rs!Price)
Case Is < rs.RecordCount
s = s & ", " & CStr(rs!Price)
Case Else
s = s & ", and " & CStr(rs!Price)
End Select
i = i + 1
rs.MoveNext
Loop
End if
rs.close
Set rs = Nothing