I need to compare two tables inside a Microsoft Access database.
Since this is a one time thing, I didn't want to look for a software to do that, instead I wanted to do that by creating queries to show me the rows that only exist in one of the tables.
So I created two queries, query 1 is showing me the rows of table 1 that are not present in table 2 and query 2 is showing me the rows of table 2 that are not present in table 1.
In both queries I do a LEFT JOIN
/RIGHT JOIN
on all of the primary key columns and only return the rows of one table, when the primary key columns in the other table are NULL
.
This worked the way I expected it, but for one row.
Checking the content of this one row in both tables I couldn't find a difference, there were no leading or tailing spaces, there were no TAB
s instead of spaces and I couldn't find other differences of that kind, believe me I tried.
Because I didn't know what else to do, I just replaced some non-ansi characters (german umlauts ä and ü) with their ansi counter parts, and suddenly my queries showed no differences anymore.
Replacing the ansi characters back to their non-ansi counter parts one by one, I found out, that the JOIN
s don't seem work when there's an "ä" present in the joined column. If the column contains an "ü" instead of an "ä" (same place in the string), then the JOIN
s work.
How is that possible? Is that a known bug of Access? Or is it a feature? How can I rely on working JOIN
s? Is there a setting I have to change?