我知道如何从主数据库打开辅助数据库,但是如何切换"关注"到辅助数据库并扫描表名以查看该数据库中是否存在表,如果它确实删除了它?
这是我打开数据库的方式,但这似乎只检查我运行代码的数据库,而不是打开的辅助数据库。
Set qd = CurrentDb.QueryDefs("exec_Dead")
Set ws = DBEngine(0)
Set db = ws.OpenDatabase("C:\Test\Testing.mdb")
On Error Resumse Next
DoCmd.DeleteObject acTable = acDefault, "Late Payments For Today"
答案 0 :(得分:3)
您需要创建一个Access.Application
变量,以便您可以与该Access实例进行交互。
Dim db as DAO.Database
Dim tbl as DAO.TableDef
Dim accDB As Access.Application
Set accDB = New Access.Application
accDB.OpenCurrentDatabase "C:\Test\Testing.mdb", false
For each tbl in accDB.CurrentDb.TableDefs
If tbl.Name = "The name of the table you want to delete" then
accDB.DoCmd.DeleteObject acTable, tbl.Name
End If
Next
accDB.CloseCurrentDatabase
set accDB = nothing
答案 1 :(得分:3)
DoCmd.DeleteObject
是Application
的方法,因此您需要{em> Testing.mdb 的Application
个实例才能使用DeleteObject
。
你可以这样做,正如@Zaider所展示的那样。但是,您可以在现有代码中从 db 执行DROP TABLE
语句:
Set ws = DBEngine(0)
Set db = ws.OpenDatabase("C:\Test\Testing.mdb")
On Error Resumse Next
'DoCmd.DeleteObject acTable = acDefault, "Late Payments For Today"
db.Execute "DROP TABLE [Late Payments For Today];"