簡體   English   中英

從Access VBA執行SQL Server傳遞查詢

[英]Execute SQL Server Pass-Through Query From Access VBA

我有一個在Access 2007中保存的UPDATE傳遞查詢。當我雙擊傳遞查詢時,它成功運行。 如何從VBA運行此查詢? 當我的“閃屏”加載時,我希望它能夠運行。

我目前正在使用以下代碼:

CurrentDb.Execute "Q_UPDATE_PASSTHROUGH", dbSQLPassThrough

但我收到以下消息:

在此輸入圖像描述

傳遞查詢包含所有連接信息,我通過多次運行確認SQL語法是正確的,所以不確定我在VBA調用中缺少什么。

使用QueryDef的Execute方法:

CurrentDb.QueryDefs("Q_UPDATE_PASSTHROUGH").Execute

我認為你不應該在這里顯式包含dbSQLPassThrough選項,但如果你需要,可以嘗試這樣做:

CurrentDb.QueryDefs("Q_UPDATE_PASSTHROUGH").Execute dbSQLPassThrough

我確認QueryDef的Execute方法是實現目標的推薦方法。

CurrentDb.QueryDefs("Q_UPDATE_PASSTHROUGH").Execute

但是,我可以指出,在Access 2010的類似情況下,對Options參數使用dbSQLPassThrough導致Run-time error '3001': Invalid Argument

我最近遇到了同樣的問題。 雖然上面提到的Execute方法適用於大多數情況,但有些人(包括我)遇到Run-time error '3001': Invalid Argument使用參數dbSQLPassThrough時參數無效 這也在我上面的答案中得到解決,即使在最簡單的SQL語句中也會發生。

對於那些遇到同樣問題的人,我建議使用OpenQuery方法作為替代方案。

有效替換以下代碼

CurrentDb.QueryDefs("Q_UPDATE_PASSTHROUGH").Execute

將會

DoCmd.OpenQuery "Q_UPDATE_PASSTHROUGH"

我知道這個帖子已有4年了,但是,在Google上搜索不起作用的Execute方法的解決方案會直接帶你到這個線程,這就是為什么我認為添加替代解決方案為我解決這個問題會很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM