这是我的第一个问题,但我不得不说这不是我第一次使用该网站。还有一件事,对不起我的英语......
我正在使用Access 2007中的一个项目,其中包含大量VBA代码和前端的大量表单。在表格中,我已经包含了记录导航按钮,供用户在表格的不同记录(下一个,上一个等)之间移动。
但是,我有一个问题,我不知道如何解决。想象一下,用户输入表格。当然,表单显示表中包含的第一条记录。在表单中,用户可以搜索记录并转到指定的记录。
获取该记录后,用户按下该按钮以显示下一条记录。然而,它没有进入下一个,而是在第一个之后进入记录。换句话说,表格转到第二条记录。
我想这是因为表单的记录集还没有更新,所以当用户按下下一个按钮(实际上我正在做docmd.gotorecord acNext
)时,它会转到下一条记录在表格中(第二条记录)。
我尝试通过表单记录源方法进行查询后更新记录集,但是它仍然出错...
最实用的解决方案是什么?
谢谢!
答案 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,所以这段代码主要来自内存,如果有任何问题,请随时询问。