You could research 'cascading' combo boxes (because there's literally thousands of web pages on this) or try fixing your row sources for the combos (they are not bound, correct?).
Whichever is the 'child' gets filtered by a value chosen in the parent - they cannot be retrieving the same data (cannot have the same row source). If user drops down the child when there's no parent value chosen, there should be no list. The AfterUpdate event of the parent is used to requery the child so that any change to the parent resets the child.
It doesn't look to me like you have the correct sql for either box, but not sure without seeing the data. If cmb1 values are in one table and cmb2 values are in another table, there's no need to join them for either combo, based on my interpretation of your tables. Try creating select queries for each, where the child sql displays what you want according to the value chosen by the parent, then set each combo's row source to the applicable query or sql statement.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.