[英]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.