我找到了有关如何在EOF之前继续浏览记录的信息。解决方案很简单,工作得很好(谢谢!)。
我使用的是:
If Me.CurrentRecord < Me.Recordset.RecordCount Then
' ...
End If
好的,我回来了。我认为它有效,但事实并非如此。我仍然得到“不能去指定记录。”这是我正在使用的代码。
If Recordset.BOF Then
Beep
MsgBox "You are at the beginning."
DoCmd.GoToRecord , , acFirst
Else
DoCmd.GoToRecord , , acPrevious
End If
答案 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