在VBA中如何将SQL得到的数据直接赋值到数组?
发表于 : 周日 6月 07, 2020 11:21 am
在VBA中如何将SQL得到的数据直接赋值到数组?
Q:在VBA中如何将SQL得到的数据直接赋值到数组?
A:可以利用RecordSet的GetRows方法获取数组。
Sub SQL2Arr()
Dim AdoCN As Object
Dim AdoRe As Object
Dim SQL As String
Dim Arr1, Arr2, Arr3
Set AdoCN = CreateObject("ADODB.Connection")
Set AdoRe = CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM [Sheet1$A1:C11]"
AdoCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=Excel 12.0;"
Set AdoRe = AdoCN.Execute(SQL)
Arr1 = AdoRe.GetRows(, , "姓名") '取得某一列
AdoRe.MoveFirst '取完一次,要将指针移动到最前
Arr2 = AdoRe.GetRows(, , Array("姓名", "班级")) '取得两列
AdoRe.MoveFirst '取完一次,要将指针移动到最前
Arr3 = AdoRe.GetRows '取得全部
AdoCN.Close
Set AdoRe = Nothing
Set AdoCN = Nothing
End Sub
Q:在VBA中如何将SQL得到的数据直接赋值到数组?
A:可以利用RecordSet的GetRows方法获取数组。
Sub SQL2Arr()
Dim AdoCN As Object
Dim AdoRe As Object
Dim SQL As String
Dim Arr1, Arr2, Arr3
Set AdoCN = CreateObject("ADODB.Connection")
Set AdoRe = CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM [Sheet1$A1:C11]"
AdoCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=Excel 12.0;"
Set AdoRe = AdoCN.Execute(SQL)
Arr1 = AdoRe.GetRows(, , "姓名") '取得某一列
AdoRe.MoveFirst '取完一次,要将指针移动到最前
Arr2 = AdoRe.GetRows(, , Array("姓名", "班级")) '取得两列
AdoRe.MoveFirst '取完一次,要将指针移动到最前
Arr3 = AdoRe.GetRows '取得全部
AdoCN.Close
Set AdoRe = Nothing
Set AdoCN = Nothing
End Sub