访问子数据库中的查询

时间:2015-06-25 12:38:31

标签: vba ms-access access-vba

我知道如何从主数据库打开辅助数据库,但是如何切换"关注"到辅助数据库并扫描表名以查看该数据库中是否存在表,如果它确实删除了它?

这是我打开数据库的方式,但这似乎只检查我运行代码的数据库,而不是打开的辅助数据库。

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"

2 个答案:

答案 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.DeleteObjectApplication的方法,因此您需要{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];"