Why the ! and not a . and .Text on the end?
While this Me!txtFName can work just as well as Me.txtFName, it is not correct and can lead to bugs.
If a form has a textbox named txtFname and you mis-spell and code as Me!txtName (and there is no control named txtName on this form), your code will compile but will likely induce a run time error. If you code as Me.txtName and compile, it will fail.
The bang operator (!) provides late bound access to the default member of an object by passing the name that follows the operator as a reference. Late bound means that the member will not be "discovered" (for lack of a better word at the moment) until code executes. Furthermore, if the reference is not a name of any member of the default, another error will likely be raised. I say likely because it's never happened to me as I only use the ! operator in a minimal number of circumstances. And no, rs!edit is not one of them.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.