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

如何判断Access子窗体是否加载?解决主窗体打开时的引用错误

Access子窗体加载引用错误的解决方法

问题根源

主窗体初始化阶段,你要访问的子窗体fzzzSubConditionalFormatCriteria还未完成加载,此时直接调用它的Form属性会触发无效引用错误;而切换记录时,子窗体已经加载完毕,代码就能正常执行。

核心解决思路:判断子窗体是否可访问

以下是两种可行的解决方案:


方案1:先判断子窗体加载状态再执行代码

在执行原有逻辑前,先检查子窗体控件的Form属性是否有效(即子窗体已加载),避免触发错误。

修改后的代码示例:

Dim targetSubForm As Control
Set targetSubForm = Me.Parent.fzzzSubConditionalFormatCriteria

' 检查子窗体是否已完成加载
If Not targetSubForm.Form Is Nothing Then
    vrSQL = "SELECT zzAppObjectFields.AppObjectField, zzAppObjectFields.AppObjectFieldTypeID, zzAppObjectFields.AppObjectIDCmb " & _
            "FROM zzAppObjectFields WHERE zzAppObjectFields.AppObjectFieldTypeID In (10,12) AND zzAppObjectFields.AppObjectID=" & Me.AppObjectID & " " & _
            "ORDER BY zzAppObjectFields.AppObjectField;"
    
    targetSubForm.Form!uuulllAppObjectFieldIDCriteria.RowSource = vrSQL
    targetSubForm.Form!uuulllAppObjectFieldIDCriteria.Requery
End If

也可以通过Access内置的窗体加载状态判断:

' 直接检查子窗体对应的源窗体是否已加载
If CurrentProject.AllForms("fzzzSubConditionalFormatCriteria").IsLoaded Then
    ' 执行原有代码逻辑
End If

方案2:避免在窗体打开时执行代码(最坏情况)

如果不需要在窗体初始化阶段执行这段代码,可将代码迁移到子窗体1的Current事件(切换记录时触发),或者主窗体的Activate事件(主窗体激活时触发,此时所有子窗体已加载)。

另一种延迟执行的方式是借助主窗体的Timer事件:

  1. 在主窗体的设计视图中,设置TimerInterval属性为500(单位:毫秒,即0.5秒)
  2. 在主窗体的Timer事件中编写代码:
Private Sub Form_Timer()
    ' 关闭计时器,防止重复执行
    Me.TimerInterval = 0
    
    ' 执行原有代码逻辑
    Dim vrSQL As String
    vrSQL = "SELECT zzAppObjectFields.AppObjectField, zzAppObjectFields.AppObjectFieldTypeID, zzAppObjectFields.AppObjectIDCmb " & _
            "FROM zzAppObjectFields WHERE zzAppObjectFields.AppObjectFieldTypeID In (10,12) AND zzAppObjectFields.AppObjectID=" & Me.fzzzSubConditionalFormatCriteria.Parent.AppObjectID & " " & _
            "ORDER BY zzAppObjectFields.AppObjectField;"
    
    Me.fzzzSubConditionalFormatCriteria.Form!uuulllAppObjectFieldIDCriteria.RowSource = vrSQL
    Me.fzzzSubConditionalFormatCriteria.Form!uuulllAppObjectFieldIDCriteria.Requery
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:12:41