2017-05-02 89 views
0

我试图在Excel中运行Access数据库查询,但面临问题。尝试在Excel VBA中运行MS Access查询时出现`object required'错误

Dim dbs As DAO.Database 

Set dbs = CurrentDb 
dbs.Execute "DELETE FROM tblMyTable WHERE Bad", dbFailOnError 

在这里,它变得

运行时错误424对象所需

正是在2ndline

set dbs = CurrentDb 

我已经添加引用DAO 3.6对象库。什么保持在CurrentDB的地方。我的MsAccess数据库在本地磁盘中。

+1

你需要做的像'设置DBS =的openDatabase( “C:\ DB1.MDB”)' – xidgel

+0

嗨Xidgel,谢谢快速的回应。但是如果我的数据库已经打开? –

+0

我在声明dbs变量之前使用了此代码Set objAccess = CreateObject(“Access.Application”) objAccess.OpenCurrentDatabase“C:\ Users \”&sUser&“\ Downloads \ ICO \”&DB&“.mdb” –

回答

1

CurrentDb不被Excel识别,所以它被视为一个空的变体,因为你没有分配任何东西。使用Option Explicit将在未来避免这类问题。

如果你的数据库已经打开,你可以试试:Set dbs = GetObject(,"Access.Application").CurrentDb

Option Explicit '### This goes at the VERY TOP of ALL MODULES 
Sub foo() 

    Dim dbs As DAO.Database 
    Dim appAccess as Object '# Access.Application 
    Set appAccess = GetObject(,"Access.Application") '# Get a handle on Access 
    Set dbs = appAccess.CurrentDb 
    dbs.Execute "DELETE FROM tblMyTable WHERE Bad", dbFailOnError 

End Sub 
相关问题