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

时间:2014-11-11 08:46:26

标签: for-loop access-vba ms-access-2007 runtime-error

我尝试使用列中的随机值填充一系列文本框。 我得到第一个文本框填充然后它返回运行时错误3021 - 没有当前记录。 我检查了值,我试图检索的记录不超过该表的记录数。 调试颜色rs.move randomrecord。

    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

1 个答案:

答案 0 :(得分:0)

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

rs.MoveFirst

之前

rs.Move randomRecord

从记录集的开头移动。

查看Office Dev Center以获取有关Recordset.Move

的更多背景信息