You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

以acFormAdd模式通过DoCmd.OpenForm打开的表单能否使用Me.Requery重查询

问题解答

核心结论

直接对acFormAdd模式打开的表单执行Me.Requery无法实现查看全部记录的需求,该操作不会生效。

原理说明

你调用DoCmd.OpenForm "Form_A", acNormal, , , acFormAdd打开表单时,Access会自动将表单的DataEntry属性设置为True。该属性开启时,表单只会展示新增过程中产生的记录,完全过滤历史已存记录,无论是否执行重查询,这个过滤规则都会生效。

实现方案

你只需要先修改DataEntry属性的状态,再配合重查询即可,不需要关闭重启表单,有两种常用实现方式:

  • 如果你要在Form_A内部触发该操作(比如给Form_A加一个「查看全部记录」的按钮),按钮点击事件代码如下:
Private Sub btnShowAll_Click()
    ' 关闭数据新增模式,允许加载历史记录
    Me.DataEntry = False
    ' 执行重查询,拉取table_A的全量最新记录
    Me.Requery
    ' 可选补充:自动定位到你刚新增的记录,不需要可以删除
    Me.Recordset.FindFirst "主键字段名 = " & Nz(Me!主键字段名, 0)
End Sub
  • 如果你要从其他窗体控制已打开的Form_A展示全量记录,调用代码如下:
' 先判断Form_A是否已打开,避免报错
If CurrentProject.AllForms("Form_A").IsLoaded Then
    Forms!Form_A.DataEntry = False
    Forms!Form_A.Requery
End If

内容的提问来源于stack exchange,提问作者Manuele C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:24:03