2013-07-03 119 views
0

我想創建一個VBA程序,它連接到您給它的數據庫(硬編碼)。從這裏開始,您將編程一個單元格,以便在查詢中爲WHERE子句輸入數據,然後在另一個工作表中輸出查詢的數據。我不想過濾這些數據,我需要查詢它。誰能幫忙?使用VBA查詢SQL數據庫

+0

什麼樣的數據庫? Excel在'Data >> Get External Data'下有工具可以做到這一點,所以試着錄製一個宏,看看你是否可以修改它來做你所需要的。 –

+0

步驟#1防範SQL注入 - 請參閱[這裏](http://xkcd.com/327/)步驟#2告訴我們你想連接的數據庫的類型 – barrowc

回答

1

您可以使用Microsoft Query執行此操作。基本步驟是:

1 - 連接到使用數據>自其他來源> Microsoft Query中的數據庫

2 - 右鍵cliking結果表中,選擇表>外部數據屬性並單擊修改結果查詢上角的小圖標。然後選擇定義選項卡:

enter image description here

3 - 右鍵單擊​​該表並選擇參數。在該對話框中,您可以設置單元格以保存Where子句的參數。

欲瞭解更多信息,請參閱此MSDN頁面和此Daily Dose post

+0

所以道格,我做了你所說的那裏,並得到了工作。我同時運行一個宏,因爲我想獲得VBA代碼,所以我可以在需要時更改它。當我嘗試運行宏後,我不斷收到一個錯誤,說下標超出範圍時會出現運行時錯誤。當我點擊調試以顯示錯誤時,它指向我:使用ActiveWorkbook.Connections(「來自ProductId的查詢」).ODBCConnection。 –

+0

這意味着您的連接名稱不是「從ProductId查詢」。我猜它現在可能是「來自ProductId2的查詢」。這種編程不是微不足道的,所以你必須弄清楚一堆這樣的事情。基於這一點信息,我建議你編程它每次使用相同的連接,這意味着不會添加一個新的。當我說這些時聽起來很明顯,如果沒有太大的幫助,很抱歉。 –