The SQL in Access is pretty well integrated into the sytem. You can put many things into your SQL that would not fly outside Access.
One thing you can do is put calls into the SQL of functions existing in modules in the DB:
SELECT MyFunc(tbl!Fld), tbl!Fld
The DB system is optimized so that if the function receives no arguments, or receives a constant, the function is run only once, and the answer is stored, being inserted into each row of the output.
But if the function receives a variable argument (such as the contents of a field), the function will be run once per row.
If you wrote a function that read the value of combo 1, you could then call that function from the WHERE clause of the query that is the rowsource for combo 2. (You could build in a default value of, say -1 for cases where combo 1 is empty.)
Then the Change event of combo one could run cboTwo.Requery.
This way, combo two tends to its own business (with a little help from a User-Defined function).