访问:移至上一条记录,直到BOF

时间:2015-01-26 14:58:36

标签: ms-access access-vba

我找到了有关如何在EOF之前继续浏览记录的信息。解决方案很简单,工作得很好(谢谢!)。

我使用的是:

If Me.CurrentRecord < Me.Recordset.RecordCount Then
    ' ...
End If

我想做的是扭转这个过程。有没有一种简单的方法来检测我何时在第一个记录上,如果我单击“上一个记录”按钮,它将检测到没有以前的记录,并且不会生成“无法转到指定记录”错误?换句话说,我如何检测BOF?

好的,我回来了。我认为它有效,但事实并非如此。我仍然得到“不能去指定记录。”这是我正在使用的代码。

If Recordset.BOF Then
Beep
MsgBox "You are at the beginning."
DoCmd.GoToRecord , , acFirst
Else
DoCmd.GoToRecord , , acPrevious
End If

1 个答案:

答案 0 :(得分:2)

这里的问题是BOF意味着在第一次记录之前。

只有当您关闭第一条记录或最后一条记录时,BOF / EOF才会成立。

下一个问题是当表单在第一条记录上时,则BOF为STILL = FALSE。

您无法使用docmd.goto Record从记录中移出表单(这是一个UI命令,因此如果没有首先看到UI错误消息,BOF / EOF将永远不会发生。

简单的解决方案是使用记录集而不是表单命令来移动记录。

当表单移动到BOF / EOF时,您已经有错误消息。

因此使用表单记录集来移动指针。

此代码应该有效:

Me.Recordset.MovePrevious
If Recordset.BOF Then
   MsgBox "at beginning"
   Recordset.MoveFirst
End If