[Excel VBA] 在VBA中如何將SQL得到的數據直接賦值到數組?

Q:在VBA中如何將SQL得到的數據直接賦值到數組?
A:可以利用RecordSet的GetRows方法獲取數組。


  1. Sub SQL2Arr()  
  2.     Dim AdoCN As Object  
  3.     Dim AdoRe As Object  
  4.     Dim SQL As String  
  5.     Dim Arr1, Arr2, Arr3  
  6.     Set AdoCN = CreateObject("ADODB.Connection")  
  7.     Set AdoRe = CreateObject("ADODB.Recordset")  
  8.     SQL = "SELECT * FROM [Sheet1$A1:C11]"  
  9.     AdoCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _  
  10.                  "Data Source=" & ThisWorkbook.FullName & ";" & _  
  11.                  "Extended Properties=Excel 12.0;"  
  12.     Set AdoRe = AdoCN.Execute(SQL)  
  13.     Arr1 = AdoRe.GetRows(, , "姓名")                    '取得某一列  
  14.     AdoRe.MoveFirst     '取完一次,要將指針移動到最前  
  15.     Arr2 = AdoRe.GetRows(, , Array("姓名""班級"))     '取得兩列  
  16.     AdoRe.MoveFirst     '取完一次,要將指針移動到最前  
  17.     Arr3 = AdoRe.GetRows                                '取得全部  
  18.     AdoCN.Close  
  19.     Set AdoRe = Nothing  
  20.     Set AdoCN = Nothing  
  21. End Sub   


利用這個方法,也可以單獨獲取某一字段

附件下載:在VBA中如何將SQL得到的數據直接賦值到數組? http://www.exceltip.net/thread-13032-1-1-11314.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章