2016-10-04 96 views
0

我有很多(60+)複雜查詢使用不同的表格和視圖從oracle數據庫,我試圖在excel中報告。Oracle SQL to Excel - 集成

這樣做最有效的方法是什麼?查詢結果還需要在excel中查找一些預先分配的值,以便相應地放置輸出。而Excel文件將需要有一個VBA宏設置來刷新和更新文件需要時。

在Excel中使用Microsoft查詢的適用方法效率不高。還有什麼其他的選擇?我試過研究,但找不到任何非常自動化和流暢的東西。

+0

你說你需要使用VBA刷新和更新,所以你已經回答了你的問題。使用VBA連接並從oracle檢索數據。 – Prisoner

+0

我很難相信你在VBA中編寫的任何東西都比MS Query更有效率。無論如何,您的VBA必須像MS Query那樣聲明,執行和從數據庫中讀取數據,只是現在您還必須擔心渲染輸出。爲什麼Excel和MS Query效率不高?我不是在批評 - 我真的很想明白。 – Hambone

回答

0

隨着Excel 2013的起步,訣竅是隻使用MS Query一次,並儘量避免使用VBA。

在新表中使用MS Query創建一個非常簡單的對你最小的表中的一個,並讓它返回Excel表中的結果。這將爲您提供Excel中的可刷新表格,併爲您提供連接字符串等棘手的內容。您現在可以將此選項卡用作模板。

複製整個選項卡,方法是按住Ctrl鍵並將其放在下一個選項卡位置。這具有創建具有單獨的Oracle連接的單獨表的優點。對於新選項卡,在數據功能區上單擊屬性按鈕打開外部數據屬性對話框,然後單擊連接名稱右側的連接屬性按鈕,然後單擊定義選項卡。在命令文本框中粘貼您的複雜查詢,然後單擊確定兩次以將您的真實查詢填充到Excel中。

重複模板選項卡複製和查詢粘貼59+多次,你完成。您可以使用「數據功能區」中的「全部刷新」一次性刷新它們。根據需要添加其他Excel公式/格式。與往常一樣,鍵盤快捷鍵通常比點擊更快。

雖然不是強制性的,並且可能比以上所有更耗時,但您應該爲每個連接名稱,選項卡和Excel表格指定一個專用名稱。你可以爲每個字符(字符限制允許)使用相同的字符,所以當你粘貼你的SQL時,修復連接名並複製它,以便將它粘貼到標籤名和表名中。

您可以設置這些查詢表以在打開工作表時自動刷新。另外考慮在Oracle中進行更多的工作來減少查詢表的數量,特別是如果它減少了非常昂貴的VLOOKUP的數量。您還可以將連接屬性定義導出到您的我的數據源目錄,並從數據功能區上的現有連接按鈕重新使用它,這樣您可能再也不需要使用MS Query。

以上所有內容都可以在VBA中完成,但是在您編寫代碼,調試並粘貼參數(如SQL和名稱)時,我相信這樣做會更快更簡單。