Here is one way. Let's say that each table has three fields, ID, Field1, and Field2.
First, create a query that returns all your possible IDs. You can do this with a Union Query. You need to create this in SQL View of the Query Builder (can't build it using the GUI). If you Google "Access Union Queries", you can find out more about this.
So that SQL code will look something like this:
Code:
SELECT Table_1.ID
FROM Table_1
UNION SELECT Table_2.ID
FROM Table_2;
Let's name this "Union_Query".
Now, let's create a new query with three objects, "Union_Query", "Table_1", and "Table_2". We want to do LEFT OUTER JOINS from the "Union_Query" to each of those two tables, and return their fields.
The SQL code of that will look something like:
Code:
SELECT Union_Query.ID, Table_1.Field1, Table_1.Field2, Table_2.Field1, Table_2.Field2
FROM (Union_Query
LEFT JOIN Table_1
ON Union_Query.ID = Table_1.ID)
LEFT JOIN Table_2
ON Union_Query.ID = Table_2.ID;
This will return what you want.
If you are really adept at writing SQL code, you could write the whole thing as one query. But there is no harm in doing it as a two-step process. Once written, you will only ever need to open the final query.