亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

管理和調試MS Access中的SQL查詢

管理和調試MS Access中的SQL查詢

郎朗坤 2019-06-06 13:18:06
管理和調試MS Access中的SQL查詢MSAccess管理原始SQL查詢的能力有限:編輯器非常糟糕,沒有語法突出顯示,它將原始SQL重新格式化為長字符串,不能插入注釋。調試復雜的SQL查詢也是一件痛苦的事情:要么您必須將其拆分為許多在模式更改時變得難以管理的較小的查詢,要么您將最終得到一個巨大的查詢,這是調試和更新的噩夢。如何在MS Access中管理復雜的SQL查詢以及如何調試這些查詢?編輯目前,我主要是用記事本+用于某些語法著色和SQL漂亮打印機用于合理地重新格式化Access中的原始SQL。使用外部存儲庫是有用的,但是保持這兩個版本不同步的風險總是存在的,在嘗試訪問查詢之前,您仍然需要刪除注釋.
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

為了調試,我在一個單獨的文本編輯器中編輯它們,使我能夠明智地格式化它們。當我發現需要進行更改時,我會在文本編輯器中編輯版本,并將其粘貼回Access,而不會在Access中編輯版本。

還是個大皮塔。


查看完整回答
反對 回復 2019-06-06
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

我有一些技巧是針對VBA中的SQL的。

將SQL代碼與字符串變量放在一起。我以前是這樣做的:

DoCmd.RunSQL "SELECT ..."

這是很難管理的。而是這樣做:

strSQL = "SELECT ..."DoCmd.RunSQL strSQL

通常,除非您看到正在運行的內容,否則無法修復查詢。為此,在執行之前將SQL轉儲到即時窗口:

strSQL = "SELECT ..."Debug.Print strSQL
Stop
DoCmd.RunSQL strSQL

將結果粘貼到Access的標準查詢生成器(必須使用SQL視圖)?,F在您可以測試最終版本,包括代碼處理的變量。

當將長查詢準備為字符串時,拆分代碼:

strSQL = "SELECT wazzle FROM bamsploot" _      & vbCrLf & "WHERE plumsnooker = 0"

我第一次學會使用vbCrLf當我想美化給用戶的長消息時。后來,我發現它使SQL在編碼時更加可讀性,并且改進了Debug.Print..(其他微小的好處:每行末尾不需要空間。))的新行語法。)

(注意:您可能認為這將允許您在SQL行的右側添加注釋。(為失望做好準備。)

正如這里其他地方所說,到文本編輯器的旅行是一種節省時間的方法。一些文本編輯器提供了比官方VBA編輯器更好的語法突出顯示。(見鬼,StackOverflow做得更好。)它還可以有效地刪除WHERE子句中的訪問CRUFT,例如多余的表引用和大量括號。

解決嚴重問題的工作流程:

VBA Debug.Print >       (capture query during code operation)
  query builder   >     (testing lab to find issues)
     Notepad++      >   (text editor for clean-up and review)
  query builder   >     (checking, troubleshooting) VBA

當然,解決問題通常是降低查詢的復雜性,直到您能夠隔離問題(或者至少使其消失!)。然后你可以把它建回你想要的杰作。因為解決一個棘手的問題可能需要幾個周期,所以您可能會重復使用這個工作流。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 650 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號