我试图找到最优雅的解决方案并希望有人可以提供帮助。
我需要做的是选择记录集中的下一个项目,但是如果它到了最后我希望它到达开头。我想循环风格。我在循环中遇到问题,它会在最后一条记录之前正常工作,然后它会不断返回第一条记录。
这里的想法是用户可以双击控件(在本例中名为lstAttendees的Listbox),它将循环显示可用值。这些值基本上是Yes,No,N / A等,但列表是动态的,可以改变,这就是我不想对其进行硬编码的原因。
相关代码如下。我写入调试窗口的位置是我正确插入我的sql的地方,这只是为了测试:
Dim rs As DAO.Recordset
Dim db As Database
Set db = CurrentDb
stQry = "SELECT * from List_AttendanceType"
Set rs = db.OpenRecordset(stQry)
Do While Not rs.EOF
If rs!Attendance = lstAttendees.Column(3) Then
rs.MoveNext
Debug.Print rs!Attendance
If rs.EOF Then
rs.MoveFirst
Debug.Print rs!Attendance
End If
End If
rs.MoveNext
Loop
我确定解决方案很简单,但我没有用新鲜的眼睛看到它。
修改/更新 就像命运一样,我在帖子发布后5分钟就知道它了,但是我会保持开放供其他人参考。有效的代码如下,这只是一个拯救子的问题。
Dim rs As DAO.Recordset
Dim db As Database
Set db = CurrentDb
stQry = "SELECT * from List_AttendanceType"
Set rs = db.OpenRecordset(stQry)
Do While Not rs.EOF
If rs!Attendance = lstAttendees.Column(3) Then
rs.MoveNext
If rs.EOF Then
rs.MoveFirst
Debug.Print rs!Attendance
Exit Sub
Else:
Debug.Print rs!Attendance
End If
End If
rs.MoveNext
Loop