如何從 ADO 資料來源傳輸資料到 Excel 搭配 ADO

文章翻譯 文章翻譯
文章編號: 295646 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

因為 Microsoft Excel 這種功能強大的資料分析工具 Visual Basic 和 VBA 的應用程式開發人員通常會想要將資料送回供分析之用的 Excel 工作表中。本文將告訴您,ActiveX 資料物件 (ADO) 對於特定的 SQL 命令使用 Microsoft Jet 特定語法這個程式設計工作的方法。

本文將告訴您程式設計的解決方案,並且不會說明 Excel 的功能表為導向的資料匯入功能 (透過在 [檔案] 功能表上的 [開啟舊檔] 選項)] 或 [使用 Microsoft Query (從 [資料] 功能表上的 [取得外部資料] 選項)。

取得更多資訊有關互補的程式設計解決方案,請使用 Excel 自動化的而非 SQL 命令按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
246335如何將資料從 ADO 資料錄集傳送至與自動化 Excel

其他相關資訊

請依照下列範例,cnSrc 表示北風貿易範例使用 Jet 4.0 OLE DB 提供者的 Jet 資料庫的開啟 ADO 連接。

如何複製

您可以使用 SELECT INTO 陳述式將資料複製 Jet 能夠即時讀取到建立新的資料表任何資料目的地 (或,Excel 新的工作表的情況下) 的任何資料來源。不要使用錢幣符號的語法來範例 [Sheet1 $] 當您參照工作表名稱做為您的目的地。目的活頁簿可以存在或不存在 ; 不過,目的地工作表必須 還存在。

有三種方式來撰寫將整個 [客戶] 資料表從 Microsoft Access 的北風資料庫複製到新的工作表,在 Excel 活頁簿中的 [複製] 指令。每個語法需要單一的 SQL 陳述式,並在目的地工作表的第一列中建立欄名。
  • 下列範例使用 SELECT INTO 語法:
    Dim strSQL As String
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _ 
        "\book1.xls].[Sheet1] FROM Customers"
    cnSrc.Execute strSQL
    					
  • 下列範例使用 SELECT INTO...IN 語法:
    strSQL = "SELECT * INTO [Sheet1] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] FROM Customers"
    						
    其中括號的目的地資料庫資訊的前面是一個空成對的單引號做為型別引數 (Excel 8.0"部分) 時使用此語法, 才會包含在括號之內。
  • 下列範例會使用替代語法 IN 子句:
    strSQL = "SELECT * INTO [Sheet1] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' FROM Customers"
    						
    的型別引數現在列出分別在目的地檔案路徑後。

如何將附加

您可以使用 INTO...IN INSERT 陳述式將資料從 Jet 可以讀取任何資料目的地至任何資料來源附加。在目的活頁簿和工作表必須存在。現在,您參照到現有的工作表,您必須使用標準的錢幣符號語法,例如 [Sheet1 $] 當您參照工作表名稱做為您的目的地。在另外欄名必須已經存在 ; 亦即此陳述式可以只可用來附加至現有的資料表。

有兩種方法來撰寫將整個 [客戶] 資料表從北風資料庫複製到現有 Excel 工作表,已經有適當的資料行標題的 [新增] 命令。
  • 下列範例使用 INSERT INTO...IN 語法:
    strSQL = "INSERT INTO [Sheet1$] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] SELECT * FROM Customers"
    						
    其中括號的目的地資料庫資訊一次前面的空白成對的引號做現在是為型別引數是包含在括號內。
  • 下列範例會使用替代語法 IN 子句:
    strSQL = "INSERT INTO [Sheet1$] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' SELECT * FROM Customers"
    					

?考

如需有關此 Jet 特有的語法的詳細資訊,參閱 Jet SQL 說明檔 (JETSQL40.chm) 特別 SELECT INTO 陳述式、 INSERT INTO 陳述和 IN 子句的主題。

屬性

文章編號: 295646 - 上次校閱: 2006年8月23日 - 版次: 2.4
這篇文章中的資訊適用於:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 97 Standard Edition
關鍵字:?
kbmt kbdatabase kbhowto kbjet kbmdacnosweep KB295646 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:295646
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com