A family of Microsoft relational database management systems designed for ease of use.
The problem with using the NotInList event procedure for inserting a new town or city into the relevant referenced tables is that town and city names can legitimately be duplicated, so if a list box includes a town name in its list, this might not be the same town as a new one of the same name which you want to insert. In the table the two would have different primary key values of course, but this will usually be in a hidden column in a combo box's RowSource, so you'll only see the name in the list.
One way to get round this is to use correlated combo boxes, so that the town or city combo box only lists those towns or cities in a region, e.g. a county , state or similar, selected in another combo box. You'll find an example of this in CorrelatedCombos.zip in my Dropbox public databases folder at:
In this little demo file a country, region, city, and postcode are selected in four correlated combo boxes, of which the first two are unbound, as to have columns in the the referencing Contacts table for these would introduce redundancy into the table. The demo also illustrates how to use the NotInList event procedure in this context, so that, as well as inserting the town or city name into the referenced Cities table, the correct RegionID value is also inserted.