In more recent versions of Access, you can programmatically discover if a
tabl is open like this:
CurrentData.AllTables("Table1").IsLoaded
You can close it like this:
DoCmd.Close acTable, "Table1"
Seriously, though, tables are queries are not adequate as the interface. If
you are programmatically writing code to manage the interface, you really
need to let the user only near forms and reports, and give them no access to
the tables and queries directly.