2012-08-01 58 views
1

我已經繼承了一個Access數據庫,我試圖解決這個問題,這樣我就可以完成它的預期目的。我似乎碰到了一個相對簡單的障礙,但我從來沒有見過這個問題,所以它讓我拋出一個循環。DoCmd.OpenQuery(「myQueryName」)不是在代碼中執行,而是在手動工作

有在徒勞的幾個語句:

DoCmd.OpenQuery ("myQueryName") 

當我通過這些在執行代碼,該代碼執行,但查詢(APPEND,UPDATE,等)的行動不會發生。當我手動運行它們時,它們會執行必要的操作。

任何人都可以提供一些見解,因爲這真的好像是導致數據庫不能準確達到其預期目的的障礙?

還有兩點可能有用的信息。構建是Access 2003,但是我在Access 2010中作爲2003數據庫文件運行。另外,原作者在查詢中放置註釋,不要手動運行它們。我認爲這是爲了幫助提醒用戶不要混淆事物(儘管阻止查詢被手動運行是一件不好的工作!!!),但是我認爲也許有些事情可能有助於觸發解決方案。

非常感謝您的幫助!

+2

Execute&RunSQL既可以採用存儲查詢,也可以採用直接SQL,區別在於Execute在運行動作查詢之前不會警告您,而RunSQL將除非您關閉警告(不建議,執行是更好的選擇) – 2012-08-07 11:25:13

回答

3

你知道些什麼,我在發佈這個問題後找到了我的答案。這就是我一直以來的想法。 DoCmd.OpenQuery通常不會打開查詢,但不會執行它。對於動作查詢,您需要db.Execute "myQueryName"或帶有DoCmd.RunSQL的SQL語句。

相關問題