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

时间:2015-02-02 09:46:09

标签: forms vba ms-access-2007

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

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

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

获取该记录后,用户按下该按钮以显示下一条记录。然而,它没有进入下一个,而是在第一个之后进入记录。换句话说,表格转到第二条记录。

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题来自以下事实:当您将过滤器设置为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,所以这段代码主要来自内存,如果有任何问题,请随时询问。