As Tom says, 7MByte is tiny. You're limited to 2048 MByte so you have some
room.
However... the bloating is ongoing. Every time you create and delete a
temporary table, the space it occupied is waste and will not be reused. I'd
question the need to create temp tables AT ALL - it is actually rather rarely
necessary! For *most* (not all, obviously) applications you can use a Select
query as the source for a report, or a form, or an export; there's no need to
create a separate table for any of those purposes.
If you have a *DEMONSTRATED* requirement to do so, consider creating a new
"scratchpad" database on the fly just to hold the temp tables. This .mdb file
can be created, used for a linked temp table, and then deleted in the course
of a session. See
http://www.granite.ab.ca/access/temptables.htm or
http://www.tek-tips.com/faqs.cfm?fid=5980 for detailed instructions.
As noted elsethread, you should *certainly* be using a split database here.