For loop 使用Access中的随机值填充一系列文本框-运行时错误3021无当前记录

For loop 使用Access中的随机值填充一系列文本框-运行时错误3021无当前记录,for-loop,ms-access,vba,runtime-error,ms-access-2007,For Loop,Ms Access,Vba,Runtime Error,Ms Access 2007,我试图用一列中的随机值填充一系列文本框。 我先填充第一个文本框,然后返回运行时错误3021-无当前记录。 我检查了这些值,并且尝试检索的记录没有超过表的recordcount。 调试颜色rs。移动随机记录 Dim rs As DAO.Recordset Dim recordCount As Long Dim randomRecord As Long Set rs = CurrentDb.OpenRecordset("SELECT * FROM besede")

我试图用一列中的随机值填充一系列文本框。 我先填充第一个文本框,然后返回运行时错误3021-无当前记录。 我检查了这些值,并且尝试检索的记录没有超过表的recordcount。 调试颜色rs。移动随机记录

    Dim rs As DAO.Recordset
    Dim recordCount As Long
    Dim randomRecord As Long

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM besede")
    rs.MoveLast
    rs.MoveFirst
    recordCount = rs.recordCount - 1
    MsgBox recordCount
    Randomize
    Dim i As Integer

    For i = 1 To 10
       randomRecord = Int((recordCount) * Rnd)
       rs.Move randomRecord
       Controls("t" & i).SetFocus
       Controls("t" & i) = rs!test
    Next

您正在从当前位置移动光标,因此最终尝试读取记录集末尾的记录。使用

rs.MoveFirst
before
rs.moverandomRecord

从记录集的开头移动

查看有关
记录集.Move的更多背景信息