BeforeUpdate问题 - 运行时错误2115

时间:2009-10-12 10:33:09

标签: ms-access vba access-vba

我写了以下查询:

Private Sub Size_Sqft_BeforeUpdate(Cancel As Integer)
  Me!Size_Sqft = Nz(Me!Size_Sqft, 0)
End Sub

但是在删除字段中的零以使其为null时,我收到以下错误:

  

运行时错误2115

     

在此字段的更新和验证规则属性之前设置的宏和函数阻止公司的手动数据输入屏幕保存字段中的数据。

2 个答案:

答案 0 :(得分:2)

您必须将该代码放在该字段的AfterUpdate事件中。

答案 1 :(得分:2)

我知道这是一个旧线程,并且已经得到了解答,但还有另一种解决方案,不需要多次写回数据库。我正在添加它以防其他人遇到这个问题。

Private Sub ControlName_BeforeUpdate(Cancel as integer)
    If isValid(Me.ControlName.Value) = False Then
        Cancel = True
        Me.ControlName.Undo
    End If
End Sub

Private Function isValid(ByVal...) as boolean
    ' validate control value here
End Function