如何從以 DAO 的 Excel 工作表中擷取資訊

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

在此頁中

結論

Excel ISAM 驅動程式並不會以動態方式轉換資料型別。

其他相關資訊

如果包含文字和數字將 Excel 試算表中有一個資料行,[ISAM 將無法正確地解譯它應該是哪一種資料型別。請確定欄中的所有儲存格格式化成是相同的資料類型。比方說,您可能有下列四個 Excel 工作表中的資料行中的資料:
   male   female children teens
   11     cc     78       ee
   22     xx     33       ff
   45     uu     56       oo
				

如果嘗試讀取 ISAM 對整張紙的驅動程式透過資料如第一列就會出現 Null 值。如果您想避免這種,建立已命名的範圍: 一個包含標頭資訊和另一個包含資料資訊。例如:
   named range 'myRange1' :
   male     female    children     teens

   named range 'myRange2' :
   11   cc   78   ee
   22   xx   33   ff
   45   uu   56   oo
				

現在可以連線到 Excel,並要求資訊只能從特定的已命名的範圍。不過,一個範圍在特定的資料行包含只有一種資料類型。

如何建立一個範圍

若要建立一個範圍,請依照下列步驟執行:
  1. 反白顯示資料。
  2. 從 [功能表] 列按一下 [插入,然後按一下 [名稱]。
  3. 按一下 [定義],然後再按一下 [範圍名稱
附註:參照到] 方塊將會參考您反白顯示的範圍。 這應該成長和壓縮插入或刪除資料時。

若要擷取您的資料的表格名稱,在您選取的陳述式中可使用您剛建立的範圍名稱。

Excel 步驟

  1. 建立 Excel 檔案 test.XLS,sheet1 中的下列資料:
       excel File : test.xls with the following entries:
    
            male  female    children   teens
             11    cc       78           ee
             22    xx       33           ff
             45    uu       56           oo
    					
  2. 在包含適當的資料工作表中建立已命名的範圍、 myRange1 和 myRange2,
          named range : myRange1
    
          male female children teens
    
          named range  : myRange2
    
          11     cc   78   ee
          22     xx   33   ff
          45     uu   56   oo
    
    					

Visual Basic 步驟

  1. 建立新標準 EXE 專案稱為"DAO_EXCEL]。
  2. 從 [專案] 功能表按一下 [引用項目,] 然後選取 [Microsoft DAO 3.5 文件庫] 核取方塊。
  3. 將一個指令按鈕放在表單上。
  4. 下列程式碼貼入表單程式碼視窗中:
          private Sub Command_click1
    
          im dbtmp As DAO.Database
          im tblObj As DAO.TableDef
          im rs As DAO.Recordset
    
          et dbtmp = OpenDatabase_
               ("<complete path>\test.xls", False, True, "Excel 8.0;")
    
          DoEvents
    
          Set rs = dbtmp.OpenRecordset("select * from `myRange2`")
          While Not rs.EOF
              For x = 0 To rs.Fields.Count - 1
                  Debug.Print rs.Fields(x).Value
              Next
              rs.MoveNext
          Wend
          End Sub
    
          Note the reverse apostrophe "`" while specifying the range
          name(myrange2).
    
    					
下列的結果會如預期般:
  11
  cc
  78
  ee
  22
  xx
  33
  ff
  45
  uu
  56
  oo
				

?考

請參閱如何連接至 DAO 透過 Excel 文件。 另一個很好的參考將會是即將來臨的 ADO-> [Excel 參考。

屬性

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

提供意見