Pat,
Thank you again for your efforts. I'm getting closer, but I'm still wrapping my head around it. Right off the bat, you taught me of a new VBA event I've had plenty of opportunities to use, but never knew it existed. The Form_BeforeInsert event. To expand on your idea, would it be possible to wrap the insert into the tblentity in a Transaction, so if the user pressed cancel, you'd have the opportunity to rollback?
Something like this?
Not sure if the logic is sound, but it seems like it could be worth a try, and may catch the user just clicking in, then escaping out. But, the code may run so fast it doesn't catch it anyways.
What would you recommend to clean this up periodically? Some sort of delete query?
OK, now on to the main subject, the entity table. (shown below for the convenience of future readers)
I just walked through the example, by adding in some breakpoints watching what happens as we add new records. I'm starting to see the idea. So, there is never a conflict because a new Entity ID is created for each new record out of any parent table. Is that correct? Would you consider holding the ParentRecordID in the Entity table as well, for when $%&* hits the fan or is that bad practice? I think otherwise you wouldn't be able to sort out the mapping again if it ever broke.
Also, in regards to Referential Integrity, I noticed you have that checked on the relationships, with cascading deletes check, but cascading updates not checked. I've questioned what the right move is in general for RI. Can you explain why you prefer the current setup, or is it only in this instance that you would select what you did?