The functionality of combo boxes can be extended significantly by adding a bit of code to the NotInList event which gets triggered when the LimitToList property is set to Yes and the user enters text that is not listed in the combo.
It can be made to add new records, change existing search fields, and so on. Your first line of code should be:
DoCmd DoMenuItem A_FORMBAR, A_EDIT, A_UNDOFIELD, , A_MENU_VER20
You can then do what you like, because you have the new value that the user typed in to the NewData parameter and the original data is still available in the field. I generally open a modal form asking if the user wishes to add a new record or change the existing one, and then take appropriate action in the recordset.
The only trick is to end the NotInList subroutine with
Response = DATA_ERRCONTINUE
This forces Access to ignore the error condition which originated the trigger for the NotInList subroutine.
This tip was supplied by firstname.lastname@example.org (Armin Burkholder), May 16, 1995.