Recordset.MoveNext非常奇怪的行为。为什么?

时间:2014-04-20 15:36:53

标签: ms-access

Microsoft Access 2010,DAO.Recordset

我在.move方法中发现了一个非常奇怪的行为。有谁知道为什么会这样?

首先加载记录集

Dim rc as DAO.Recordset
Set rc = CurrentDB.Openrecordset(" ... ")
Debug.Print rc.RecordCount  ' 1273

现在,这有效:

rc.MoveFirst
rc.Move 500

这不起作用:(为什么???)

rc.MoveFirst
rc.Move 1272

现在它变得很奇怪:这再次起作用......

rc.MoveFirst
rc.Move 1272
if rc.AbsolutePosition = -1 then
  rc.MoveFirst
  rc.Move 1272
end if

1 个答案:

答案 0 :(得分:1)

在您第一次mc.MoveFirst之前,请尝试添加mc.MoveLast。这会强制记录集填充。我的猜测是,当你试图移动到最后一条记录时,记录集还没有完全填充。