2017-02-09 66 views
0

我有一個非常惱人的問題,我在其他Access dbs中的歷史上工作得非常好。訪問VBA DoCmd.OpenQuery問題

作爲測試,我有一個帶按鈕的窗體。 單擊事件按鈕是運行一個簡單的查詢,這是VBA:

Private Sub Command0_Click() 

DoCmd.SetWarnings False 

DoCmd.OpenQuery "mktbl_qry_Useable_Leads", acViewNormal, acEdit 

DoCmd.SetWarnings True 

End Sub 

非常簡單和直接的,但是,我不斷地得到宏彈出列表要我選擇的子程序。

這是有原因嗎? 我已經嘗試了其他查詢,並得到了相同的結果,並且還嘗試了另一個具有相同問題的空白表單。它讓我瘋狂。

非常感謝幫助。

+0

請不要設置警告http://stackoverflow.com/questions/11213892/whats-the-difference-between-docmd-setwarnings-and-currentdb-execute/11213943#11213943 – Fionnuala

+0

運行查詢不應顯示宏對話框。看起來像你的數據庫損壞。嘗試創建新的accdb並將所有對象從當前數據庫複製到新的。 –

+0

@Fionnuala上面的例子會隱藏什麼樣的警告,db.Execute不會呢?對側欄的OP抱歉。順便說一句,你有沒有試過一個緊湊的修復? – GavinP

回答

0

您可以使用數據庫對象來運行查詢。對於一個簡單的查詢,你並不需要在數據庫中創建窗口

CurrentDB.Execute「qdRunUpdateQuery」查詢,dbFailOnError + dbSeeChanges

CurrentDB.Execute「更新物品組價= 10其中id = 23「,dbFailOnError + dbSeeChanges