MS Access VBA循环记录并重新开始

时间:2016-03-11 05:07:13

标签: vba loops access-vba do-while

我试图找到最优雅的解决方案并希望有人可以提供帮助。

我需要做的是选择记录集中的下一个项目,但是如果它到了最后我希望它到达开头。我想循环风格。我在循环中遇到问题,它会在最后一条记录之前正常工作,然后它会不断返回第一条记录。

这里的想法是用户可以双击控件(在本例中名为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

0 个答案:

没有答案