Possibly. It might not like the "~" symbol in the name.
Do all the tables you want to delete have anything in common, i.e. a prefix or something, that you can limit your delete statements to ones meeting those conditions?
Here is something that I have that may be helpful. I have some automated processes that import files, and sometimes there are import errors that I do not care about. So in order to keep my database from filling up with a bunch of Import Error tables, I run this code to keep it lean:
Code:
' Delete any old import errors tables
For Each tblDef In CurrentDb.TableDefs
If InStr(1, tblDef.Name, "ImportErrors") > 0 Then
DoCmd.SelectObject acTable, tblDef.Name, True
DoCmd.DeleteObject acTable, tblDef.Name
End If
Next tblDef
This at least shows you some other syntax for deleting tables.