Me.Dirty will always be True, in the Form_BeforeUpdate event; how can it not be? If the Form wasn't dirtied, there would be no reason to Save the Record, and the event would never be executed!
All you need to accomplish your goal is
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not Me.NewRecord Then
If MsgBox("Routing details of this skid have been altered. Commit?", vbYesNo + vbQuestion, "Skid Manager - Commit Changes") = vbNo Then
Me.Undo
End If
End If
End Sub
Linq ;0)>
The problem with making anything foolproof...is that fools are so darn ingenious!
All posts/responses based on Access 2003/2007