在 Visual Basic 中,DoCmd 对象的 Requery 方法执行 Requery 操作。
expression.Requery(ControlName)
expression 必需。返回以上对象之一的表达式。
ControlName 可选 Variant 型。字符串表达式,表示活动对象上控件的名称。
应用于“应用于”列表中所有其他对象的 Requery 方法。
Requery 方法通过重新查询窗体或控件的数据源更新基于指定窗体或激活窗体上的控件的数据。
expression.Requery
expression 必需。返回“应用于”列表中的一个对象的表达式。
说明
使用该方法可以确保窗体或控件显示最新的数据。
Requery 方法执行下列操作之一:
? | 重新运行基于其创建窗体或控件的查询。 |
? | 显示任何新的或已更改的记录,或从窗体或控件所基于的表中删除已删除的记录。 |
? | 根据对窗体的 Filter 属性所作的任何更改更新显示记录。 |
基于查询或表的控件包括:
? | 子窗体控件 |
? | ControlSource 属性设置包括域聚合函数或 SQL 聚合函数的控件。 |
如果指定由 expression 指定的任何其他类型的控件,则重新查询窗体的记录源。
如果 expression 指定的控件未绑定到表或查询中的字段,Requery 方法将强制控件进行重新计算。
如果省略由 expression 指定的对象,Requery 方法将重新查询基础数据源查找具有焦点的窗体或控件。如果具有焦点的控件有记录源或行来源,它将被重新查询;否则控件的数据只是简单地刷新。
如果子窗体控件具有焦点,则该方法只重新查询子窗体的记录源,不查询父窗体的记录源。
注释
? | Requery 方法更新基于窗体或控件的数据,以反映自上一次重新查询以来记录源中新增的记录或已删除的记录。Refresh 方法只显示对当前记录集所做的更改;它不反映记录源中新增的记录或已删除的记录。Repaint 方法只简单地重画指定的窗体及其控件。 |
? | Requery 方法不会将控制权交给操作系统以允许 Windows 继续处理消息。如果需要暂时放弃对操作系统的控制权,请使用 DoEvents 函数。 |
? | Requery 方法的速度比 Requery 操作快。使用 Requery 操作时,Microsoft Access 将关闭查询然后从数据库重新加载。而使用 Requery 方法时,Microsoft Access 将重新运行查询,而不是关闭并重新加载查询。 |
下面的示例使用 Requery 方法更新“雇员列表”控件:
DoCmd.Requery "EmployeeList"
下面的示例使用 Requery 方法来重新查询“雇员”窗体上的“雇员列表”列表框中的数据:
Public Sub RequeryList()
Dim ctlCombo As Control
' Return Control object pointing to a combo box.
Set ctlCombo = Forms!Employees!ReportsTo
' Requery source of data for list box.
ctlCombo.Requery
End Sub