如何從 Access 擷取表格到 Excel 使用 DAO

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

結論

在上面所列的 Microsoft Excel 的版本中,您可以使用 Visual Basic 應用程式中資料存取物件 (DAO) 從 Microsoft Access 擷取資料表。

若要以便您可以如何使用 DAO 來擷取資料表從 Microsoft Access 的範例本文所述巨集在使用的出貨的北風貿易資料庫使用 Microsoft Office 專業版的 Windows 95、 7.0,版和 Microsoft Office 97 專業版的 Windows。如果您安裝 Microsoft Office 專業版的 Windows 95,7.0,版時,選取預設的選項有資料庫位於:
   \MSOffice\Access\Samples\Northwind.mdb
				
如果您在安裝 Microsoft Office 97 專業版的 Windows 時,您可以選取預設選項,資料庫位於中:
   \Program Files\Microsoft Office\Office\Samples\Northwind.mdb
				
如果 Northwind 資料庫位於您的電腦上的不同資料夾中,您必須編輯在執行之前,以下提供的程式碼。

若要在巨集中使用 DAO,您必須參考 Microsoft DAO 物件程式庫,或者您可能會收到錯誤 「 使用者定義類型未定義 」。若要參考 Microsoft Excel 版本 7.0 中的這個媒體櫃,啟動模組工作表、 在 [工具] 功能表上按一下引用項目],然後檢查"Microsoft DAO 3.0 物件程式庫 」 選項。若要參考這個程式庫在 Microsoft Excel 版本 97,在 [工具] 功能表 Visual Basic 編輯器] 中按一下引用項目],然後檢查"Microsoft DAO 3.5 物件程式庫"]。

其他相關資訊

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。若要從 Microsoft Access 擷取資料表,請依照下列步驟執行:

  1. 建立一個資料庫物件。
  2. 建立一個資料錄集物件。
  3. 擷取標頭檔 (如果需要的話)。
  4. 從資料表擷取資料。
擷取資料之後應關閉由發出.Close 命令開啟的所有物件。

若要以程式設計方式擷取從 Microsoft Access 資料表,使用下列的 Visual Basic 應用程式程式碼:
Sub GetTable()
'This sub will retrieve all the data in the "Customers" table in
'Northwind

   'Declare variables
   Dim Db As Database
   Dim Rs As Recordset
   Dim Ws As Object
   Dim i As Integer
   Dim Path as String

   'This line will define the Object "Ws" as Sheets("Sheet1")
   'The purpose of this is to save typing Sheets("Sheet1")
   'over and over again
   Set Ws = Sheets("Sheet1")

   'Set the Path to the database. This line is useful because
   'if your database is in another location, you just need to change
   'it here and the Path Variable will be used throughout the code
   Path = "c:\msoffice\access\samples\northwind.mdb"

   'This set of code will activate Sheet1 and clear any existing data
   'After clearing the data it will select cell A1
   Ws.Activate
   Range("A1").Activate
   Selection.CurrentRegion.Select
   Selection.ClearContents
   Range("A1").Select

   'Set the Database, and RecordSet  This Table exists in the database
   Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True)

   'This will set the RecordSet to all records in the Customers table
   Set Rs = Db.OpenRecordset("Customers")

   'You could instead set the RecordSet to, for example, the records
   'where the Country Code is "UK", without quotes. To do this, replace
   'the line above: Set Rs = Db.OpenRecordset("Customers") with the
   'following:
   '
   'Set Rs = _
   'Db.OpenRecordset("SELECT * FROM Customers WHERE Country = 'UK';")


   'This loop will collect the field names and place them in the first
   'row starting at "A1"
   For i = 0 To Rs.Fields.Count - 1
      Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
   Next I

   'The next line simply formats the headers to bold font
   Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold=True

   'The next line will get the data from the recordset and copy it
   'into the Worksheet (Sheet1).
   Ws.Range("A2").CopyFromRecordset Rs

   'This next code set will just select the data region and
   'auto-fit the columns
   Sheets("Sheet1").Select
   Range("A1").Select
   Selection.CurrentRegion.Select
   Selection.Columns.AutoFit
   Range("A1").Select

   Rs.Close
   Db.Close
End Sub
				

?考

如需有關資料存取的詳細資訊,按一下 [索引] 索引標籤,Microsoft Excel 說明] 中的,鍵入下列文字
在 DAO 中的資料存取
然後再連按兩下所選取的文字,以移至"存取外部資料庫使用 DAO > 主題。

屬性

文章編號: 146406 - 上次校閱: 2006年10月11日 - 版次: 2.3
這篇文章中的資訊適用於:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
關鍵字:?
kbmt kbdtacode kbhowto kbinterop kbprogramming KB146406 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:146406
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。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