I am NOT a guru, so this will probably strike the more educated as quite inelegant. However, when I’ve been faced with a similar situation, I’ve used a workaround that should suffice. Use this in case no one else shows up with anything better.
What about using a make table query with IIFs in it? I don’t have access to Access at the moment, so I can’t be sure of the exact syntax, but you could try the following. (also note that I’m not sure where the three tables are coming from. From your example it looks like you have just two tables. This should work for two, and only take a bit more nesting to get three)
CombName:iif(table1.name is not null, table1.name,table2.name)
CombNumber:iif(table1.number is not null, table1.number, table2.number)
And so on…
This is pretty straightforward. If both tables hold identical names, than CombName will always choose the name from the first table. I am assuming, by the way, that both tables have a key field that equates records. When you get to the second field, CombNumber, it looks to see if there is a record in table one. If so, it uses that and goes on to the next field. If table1’s number field is empty (null) than the iif is false, and it uses the value from table two. If you have more tables, just add another iif and nest it after the first.
You can also use this to check for mismatched records. If you have a number in both tables the iif statement as is will just use the first one it finds. But if the two numbers are different, and you want to be made aware of that, just place another nested iif inside with a *table1.field <> table2.field, table1.field, “Hey, pay attention to me. I have an mismatched duplicate” * Of course, the flag you use can be subtler, like table1.field & “A”, so all you have to do to see discrepant records is run a select query for As in that field.
Anyway, I hope that this gives a small modicum of hope.