Thanks Maj. I'll go back to VBA, was trying to use the Access Bound type stuff (if you know what I mean) and didn't have a bloody clue how to, so it was trial and (mostly) error.
Bound forms just work. That is so that even someone who knows nothing about anything can create them. Strangely, it is only people who know how to code in a different environment that have trouble with bound forms. Probably because they expect them to work the way their last platform worked and that probably won't be true.
1. Bind the RowSource of the combo to a table or a query. You can build one with .AddItem but why? Can you really not select the data you want using a query?
2. Bind the form to a table or a query. The table or the query MUST be updateable. If it isn't, combos won't be able to select anything since the field it is bound to cannot be updated.
Start with the basic stuff until you understand how forms work.
and added some fields into a query; instead of my VBA in the Current even.
This is part of understanding how Access works. People who know how to write code frequently just jump in with code to solve a problem. Don't do it. Code should be your last option. I came to Access after more than 25 years in the field so I'd written my million lines of code and didn't need the practice. Find your solutions in this order:
1. queries (always faster than DAO/ADO loops BTW)
2. property settings
3. VBA functions
4. VBA
You'll still write plenty of code but it won't be code to control the environment. It will be code to implement the business rules.
The key to success with Access is to let Access be Access. Learn how to control bound forms by using the various form level events. There may be some obscure situation that you can't control with form and control events but I haven't run into any. The single most important event when working with bound forms is the FORM's BeforeUpdate event. Think of this as the flapper at the bottom of a funnel. If the funnel is open, the record gets saved. If the flapper is closed, the record does not get saved. Once you understand this, you can then have complete control over whether or not a record gets saved. Put all the validation code you want in dozens of events call it from everywhere but if it isn't in this event (or called from this event) you'll have holes as big as the grand canyon and bad data will be saved regardless of how many warning messages you display.