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

调用子窗体(数据表视图)Click事件的语法问题

解决Access跨子窗体调用数据表子窗体Click事件的问题

首先得明确两个关键要点:Access中子窗体控件和其内部窗体对象的区别,以及事件过程的访问权限——这正是你之前写法失败的核心原因。

  • 第一步:修改目标事件的访问权限
    默认情况下,窗体的事件过程是Private(私有)的,外部窗体无法直接调用。你需要打开InvList_subform的VBA编辑器,把原来的Private Sub Form_Click()改成Public Sub Form_Click(),这样外部才能访问这个过程。

  • 第二步:使用正确的引用语法
    你之前直接引用Forms!mainform!InvList_subform是在操作子窗体控件本身,而不是它承载的窗体对象。必须通过.Form属性访问到内部的窗体实例,才能调用其事件过程。正确的调用代码应该是:

    Forms!mainform!InvList_subform.Form.Form_Click
    

    举个具体的例子,假设你要在AcctList_subform的某个按钮点击事件里调用,代码可以这么写:

    Private Sub YourButton_Click()
        ' 先确保目标子窗体已加载
        If Not IsLoaded("InvList_subform") Then
            MsgBox "目标子窗体未加载,请先打开主窗体对应的标签页!"
            Exit Sub
        End If
        ' 调用目标子窗体的Click事件
        Forms!mainform!InvList_subform.Form.Form_Click
    End Sub
    
  • 额外注意事项
    如果你的Form_Click过程里用到了Me关键字(比如Me!InvoiceID),在外部调用时Me会指向当前调用的窗体(也就是AcctList_subform),这会导致错误。你需要把Me替换成目标子窗体的引用,比如改成Forms!mainform!InvList_subform.Form!InvoiceID。

另外,还要确认InvList_subform的记录选择器是开启状态,并且调用时子窗体里有选中的记录,避免事件过程中出现空引用错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:04:25