当它应该是真的时,Form.Dirty是假的

dar*_*kjh 6 ms-access vba access-vba

我注意到在我的一个表单中(有限查询),当我执行此代码时:

Private Sub Form_Dirty(Cancel As Integer)
    MsgBox Me.Form.Dirty
End Sub
Run Code Online (Sandbox Code Playgroud)

它应该弹出值'true',因为这是onDirty事件,对吧?但实际上我得到了'假'.为什么?

Kev*_*oss 7

那是因为脏事件是您可以取消更改并将其回滚的地方.在脏事件之后,表单实际上被标记为脏.例如,文本框的事件链是这样的

KeyDown> KeyPress> BeforeInsert> Dirty> KeyUp

希望这可以帮助