I agree with Jerry, that is the best way.
Although I have found the 'onkey event' useful. This can run on a form level or a text box level (not sure which is serviced first). When a key is pressed a number is passed into the subroutine (normal ascII stuff). Simply do a case statement to filter out the actions you want. You could then modify the the actions in the text box to do almost anything. If you want to cancel the key action then set 'key = 0' (I think that is correct) and the normal access action will not execute.
Anyway just to finish where I started, getting the database structure correct first can save alot of playing around with processes I have just described, and make the data more flexible, searchable and printable. Long text fields can encourage users to enter data in a manner that the designer would not expect.
Listen to Jerry.