2017-05-02 123 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 
相關問題