Add a command button to the form.
Set its Cancel property to Yes.
It now responds to the Esc key.
Set its On Click property to:
[Event Procedure]
Click the Build button (...) beside this.
Between the Private Sub ... and End Sub lines, enter:
DoCmd.Close acForm, Me.Name
If it is a bound form, add this line ahead of that one:
If Me.Dirty Then Me.Dirty = False
This works around the bug described in this article:
http://members.iinet.net.au/~allenbrowne/bug-01.html