Inefficient design. Everytime new table is created, need to create or modify queries, forms, reports.

Should be one table of all classes taken then use filters to retrieve desired records.

I can't see anything wrong with the latest version of your query.