在访问 vba 查询后移动到下一个记录记录集

Move to next record recordset after query in access vba

这是我的第一个问题,但我不得不说这不是我第一次使用该网站。还有一件事,对不起我的英语...

我正在使用 Access 2007 开发一个项目,其中包含大量 VBA 代码和大量前端表单。在表单中,我包含了记录导航按钮,供用户在 table(下一个、上一个等)的不同记录之间移动。

但是,我有一个问题不知道如何解决。假设用户输入一个表单。自然地,该表格显示 table 中包含的第一条记录。在表单中,用户可以搜索记录并转到指定记录。

获取到那条记录后,用户按下按钮显示下一条记录。但是,它不会转到下一个,而是转到第一个之后的记录。换句话说,表格转到第二条记录。

我猜是因为表单的记录集没有更新,所以当用户按下下一个按钮时(实际上我正在做 docmd.gotorecord acNext),它会转到下一个记录table(第2条记录)。

我尝试在通过表单记录源方法进行查询后更新记录集,但仍然出错...

最实用的解决方案是什么?

谢谢!

您的问题是因为当您将过滤器设置为 false 时,您实际上重新设置了整个表单。

要解决这个问题,您可以尝试使用以下搜索命令:

DoCmd.OpenForm "Customers"

' This assumes that you've got a control on the customers form named ID which has the IDs in it
DoCmd.GoToControl "ID"

DoCmd.FindRecord Me.search_customers_subform.Form.ID

点击下一步时,您现在需要的是:

DoCmd.GoToRecord , , acNext

过滤器不再存在。

希望这对你有用。我现在没有Access,所以这段代码主要是靠记忆,如果有什么问题,尽管问。