3

假设用户想要创建一条新记录并为此打开一个表单。打开表单时

DoCmd.OpenForm "FormName", acNormal, "", "", acFormAdd, acDialog

Access 将使用在新/空记录上设置的数据指针打开表单。用户现在可以填写表单,但某些用户操作可能需要 aMe.Requery才能发生。如果这样做,表单会“松开”当前创建和修改的记录上的数据指针,并跳转到一个新的空记录。即使Me.Dirty = False在重新查询之前也不会阻止 Access 这样做。我很确定这种行为是由参数引起的acFormAdd

相反,使用

DoCmd.OpenForm "FormName", acNormal, "", "WHERE-CLAUSE", acFormEdit, acDialog

解决该行为,但仅适用于现有记录。

您可以想象这种未经请求的行为不是我所期望的,因为它迫使我实施一个丑陋的解决方法,即在满足某些条件时关闭和重新打开 from。

所以,我想知道是否有一种更简单的方法可以帮助我避免上述行为。非常感谢您的帮助!

4

2 回答 2

2

查看重新查询选定的表单控件是否可以在不重新查询整个表单的情况下完成您的需要。

例如,要重新查询名为cboUserID的组合框,您可以这样做...

Me.cboUserID.Requery
于 2013-08-24T17:38:48.033 回答
0

也许更好的解决方案可能是使用 .recalc 代替。

DoCmd.Save
Me.recalc
于 2017-07-04T12:37:00.827 回答