Ms access 控件中的VBA函数资源不会触发

Ms access 控件中的VBA函数资源不会触发,ms-access,vba,ms-access-2010,ms-access-2013,Ms Access,Vba,Ms Access 2010,Ms Access 2013,在连续表单上,我有一个带有controlsource=“=hasDocument([Nr])”的复选框,该函数在表单中定义如下: Private Function hasDocument(Nr As Variant) As Boolean On Error Resume Next If IsNull(Nr) Then ' pass ElseIf err <> 0 Then ' pass Else has

在连续表单上,我有一个带有controlsource=“=hasDocument([Nr])”的复选框,该函数在表单中定义如下:

Private Function hasDocument(Nr As Variant) As Boolean
    On Error Resume Next

    If IsNull(Nr) Then
        ' pass
    ElseIf err <> 0 Then
        ' pass
    Else
        hasDocument = DExists("ID", "Kurztexte", "Aufwendungs_Nr=" & Nr)
    End If

End Function
私有函数hasDocument(Nr作为变量)作为布尔值
出错时继续下一步
如果为空(Nr),则
”“通过
否则错误为0
”“通过
其他的
hasDocument=DExists(“ID”、“Kurztexte”、“Aufwendungs_Nr=”&Nr)
如果结束
端函数
大多数情况下,它都可以工作,但在某些机器上,hasDocument函数不会启动。 当控件获得焦点时,函数仅针对该记录在该机器上激发

使用form.recalc,函数将激发所有显示的记录。但向下滚动时,Access不会启动新记录的功能

当我想将此表单用作子表单时,form.recalc的工作方式如上所述,但access会重新绘制子表单,并且所有控件都会再次显示Null。因此,如果函数从未激发过

我做了一个gif来澄清:

只有Access 2010才会出现此问题。使用Access 2013,表单加载时控件中也没有值,但在1-2秒(有点长)后,hasDocument函数开始为所有记录启动

重启机器通常会让问题消失一段时间,但它会不时弹出


有人建议是什么导致了这种行为吗?

对于有相同问题的人:Microsoft现在发布了一个修补程序来解决这个问题

可以在这里找到: