based on post#5, I'm going on a different tack - perhaps the maketable isn't hanging, just taking a long time.
When you open a select query, it will display the first few records returned fairly quickly whilst it continues to process the rest of the records. The recordset is not fully populated until you can see the recordcount at the bottom. So when you run your query as a sel;ect query, how long until the recordcount is populated?
When you run an action query such as maketable or insert query, it will not appear to be doing anything until the entire recordset has been processed. Also it needs to update the indexes - which will add to the time taken.
So you have a large number of records - are all relevant fields indexed? Is the query optimised for best performance (i.e. no domain functions, sub queries, no use of the like * predicate etc) These will all have an impact on performance.
Your link doesn't work so cannot assess what your data looks like
From your comments, which appears to be that a form takes too long to open, I suspect you are not applying good practice for large datasets.
Good practice is to open the form with a minimal number of records - none, or 1 or 2 or perhaps 20 or 30 for a continuous form. This is done by applying criteria (not filter) in the recordsource in the form open event. Further, Subforms open before the main form - so these should be opened with an empty recordset and subsequently populated in the main form current event - or if on different tabs, consider not populating until the relevant tab is selected. Similar principles apply for combo and list boxes - these should not be populated with a list of 30,000+ customers/suppliers/whatever. Again they should have criteria applied - perhaps by not populating the rowsource until 2 or 3 characters have been typed by the user.
All of these features can be created using VBA