Sql in VBA 之 記錄集賦值給陣列

2022-07-20 07:57:09 字數 1873 閱讀 4620

關鍵:arr=rst.getrows

資料表如下:

姓名	成績

甲 134

乙 84

丙 56

丁 142

戊 94

己 65

庚 79

辛 126

壬 53

癸 87

子 135

醜 85

寅 68

卯 90

辰 119

巳 41

午 118

未 141

申 82

酉 101

戌 107

亥 57

**如下:

1

'查詢第6-15名的學生資訊

2sub

getrswitharray()

3dim cnn as

object

4dim rst as

object

5dim

strsql$, strpath$

6dim

adata, aresult

7dim i&, j&8'

9 strpath =thisworkbook.fullname

10set cnn = createobject("

adodb.connection")

11set rst = createobject("

adodb.recordset")

12then

13 cnn.open "

provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=

" &strpath

14else

15 cnn.open "

provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=

" &strpath

16end

if17 strsql = "

select top 15 姓名,成績 from [成績表$] order by 成績 desc"18

'前15位

19 rst.open strsql, cnn, 1, 3

20 adata =rst.getrows21'

記錄集轉二維陣列

22redim aresult(0

toubound(adata, 2), 0

toubound(adata, 1) + 1)23

24'宣告乙個新陣列,將記錄集陣列轉換過去(轉置)

25for i = 5

toubound(adata, 2)26

for j = 0

toubound(adata, 1

)27 aresult(i - 5, j) =adata(j, i)

28next

29 aresult(i - 5, 2) = i + 130'

名次31

next

3233

cells.clearcontents

34 [a1:c1] = array("

姓名", "

成績", "名次"

)35 range("

a2").resize(ubound(aresult), 3) =aresult

36rst.close

37cnn.close

38set rst = nothing

39set cnn = nothing

40end sub

返回記錄集函式

set ansi nulls on set quoted identifier on gocreate function dbo rtntablefunc returns table asreturn select cqs as a,2007 04 03 as b,okok as c set ans...

記錄集元素個數

www.gudianxiaoshuo.com 本文由 助手軟體 整理發布 內容與本軟體無關更愜意的讀 更舒心的寫 更輕鬆的發布 秀色書文軟體 可聽 可讀 可寫 可知識挖掘 可標註,再加上史上最強大的純文字配色功能,瞬間使您的書文秀色起來。判斷記錄集中 某一列項為空 variant t varvalu...

關於記錄集問題

關於記錄集問題 delphi windows sdk api 請問當我讀取記錄集的時候不用以下方式,我想一次讀取兩條記錄,然後再迴圈下面兩個,依次類推,應當怎麼做啊,謝謝各位了!while not adoquery.eof do begin next 每次只能讀取一條記錄 end 在迴圈內部執行兩次...