For the most part, I have to agree 100%...
in "ms-access", the escape key does un-do...or "cancel" changes to the field
you are editing (and, hitting esc a 2nd time will cancel changes to the
form).
So, a nice rule is to "follow" the standard conventions of ms-access.
However, I have a lot of older legacy software (FoxPro, and other stuff)
that is green screen.
In virtually all of my older software, Esc actually means to save + close
the form. A nice key...you edit something..and then hit esc to go back a
screen.
over the last few years, I have converted those applications to ms-access,
and thus I STILL have the ESC key = save and close....
Of course, my applications hide all of the ms-access interface, and I ALWAYS
use custom menus. So, for the most part I am somewhat free to choose the
keys sine my end users are NOT ms-access uses...but simply users of *MY* my
application.
So, at the end of day...yes...we should try and leave the ESC to do what it
does by default.
However, you can change this...and if re-writing software that previously
used Esc to exit the screens...then you might want to do the same for those
users of habit.....
You simply set the forms key preview = yes...
and then in the forms keydown event...you go
If KeyCode = vbKeyEscape Then
KeyCode = 0
docmd.Close
End If