记录集找不到记录

时间:2015-12-31 14:57:20

标签: vba ms-access

大家好我在VB for Access中遇到过这种情况。 enter image description here

GenraReport_Click()是在报告中按下按钮时调用的主要功能。

Temp是一个包含这样的数据的表: enter image description here

现在我创建了一个记录集rs来循环Temp的每个记录,由字段Item。 它的确有效,问题是当我将功能价格调整为必须与现场价格相同时。

当我尝试拨打rs!price(或rs![price]我试过两次)问题来了,它告诉我没有记录。我在第一个循环结束时放了一个movefirst调用,再次使用新函数启动。

(我尝试用价格而不是项目进行主循环,它起作用,因此它不是表格而不是语法问题。它可以是什么?

1 个答案:

答案 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