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

Access导航窗体中子窗体加载时跳转新记录的代码修改方案

解决导航窗体中GoToRecord代码报错的问题

你原本的代码在独立窗体中运行正常,但将窗体放入NavigationForm后,Me.Name的引用逻辑因窗体嵌套关系失效,导致DoCmd无法正确定位目标窗体。以下是两种可靠的修改方案:

方法1:调用窗体自身的GoToRecord方法

直接使用当前窗体的内置方法,无需指定窗体名称,彻底避开嵌套引用的路径问题:

Private Sub Form_Load()
  Me.GoToRecord , , acNewRec
End Sub

方法2:修正DoCmd的窗体引用逻辑

如果坚持使用DoCmd,需要明确指向当前窗体的Form对象,而非单纯依赖名称:

Private Sub Form_Load()
  DoCmd.GoToRecord acDataForm, Me.Form.Name, acNewRec
End Sub

补充说明

  • 你之前尝试的Forms!NavForm!navSubform.Form写法失败,通常是因为导航子控件的实际名称并非navSubform(需在导航窗体设计视图中确认子控件名称,而非嵌入的窗体名称),但上述两种方法无需依赖导航窗体的控件名称,通用性更强。
  • 也可以通过直接添加新记录实现相同效果:
Private Sub Form_Load()
  If Me.NewRecord = False Then
    Me.Recordset.AddNew
  End If
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:47:43