使用 Requery 操作可以通过重新查询控件的数据源来更新活动对象指定控件中的数据。如果不指定控件,该操作将对对象本身的数据源进行重新查询。使用该操作可以确保活动对象或其所包含的控件显示的是最新数据。
Requery 操作具有以下参数:
操作参数 |
说明 |
控件名称 |
要更新的控件的名称。请在“宏”窗口中“操作参数”部分的“控件名称”框中输入控件名称。应该只使用控件的名称,而不是它的完整标识符(如 Forms!窗体名称!控件名称)。如果要重新查询活动对象的数据源,则要将本参数留空。如果活动对象是数据表或查询结果集,也必须将本参数留空。 |
Requery 操作可完成以下任务之一:
? | 返回控件或对象所基于的查询。 |
? | 显示所有新的或更改过的记录,并且从控件或对象所基于的表中移去所有被删除了的记录。 |
注释 Requery 操作不会影响记录指针的位置。
基于查询或表的控件包括:
? | 子窗体控件。 |
? | OLE 对象,如图表。 |
? | 含有域聚合函数的控件,如 DSum。 |
如果指定的控件不是基于查询或表的,该操作将强制对控件进行重新计算。
如果将“控件名称”参数留空,Requery 操作的效果就和当对象具有焦点时按 Shift+F9 是一样的。如果子窗体控件具有焦点,该操作将只重新查询子窗体的数据源(就像按 Shift+F9 一样)。
注释 Requery 操作重新查询控件或对象的数据源,而 RepaintObject 操作则只是重新绘制指定对象中的控件,而并不重新查询数据库,也不显示新记录。ShowAllRecords 操作不仅重新查询活动对象,而且还删除所有已应用的筛选,而 Requery 操作不具有此项功能。
如果要重新查询非活动对象上的控件,必须使用 Visual Basic 中的 Requery 方法,而不要用 Requery 操作或与其相应的 DoCmd 对象的 Requery 方法。Visual Basic 的 Requery 方法比 Requery 操作和 DoCmd.Requery 方法要快。而且,当使用 Requery 操作或 DoCmd.Requery 方法时,Microsoft Access 将关闭查询然后重新从数据库加载查询。而使用 Requery 方法时,Access 将重新运行查询,而不是关闭再重新加载它。请注意,ActiveX Data Object (ADO) 的 Requery 方法与 Access Requery 方法的工作方式是一样的。