Sql in VBA 之 類模組

2022-07-20 07:57:10 字數 2337 閱讀 2346

把重複的**搞進類模組,也不知道對不對,反正我是沒報錯。

表1:一班

姓名	語文	數學	英語

天 136 140 21

地 62 90 98

玄 200 126 10

表2:二班

姓名	語文	數學	英語

子 82 97 65

醜 55 99 46

寅 54 61 60

表3:三班

姓名	語文	數學	英語

甲 110 110 100

乙 110 102 101

丙 107 106 110

類模組:資料庫

1

property

get excel資料庫(mypath as

string)2

then

3 excel資料庫 = "

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

" &mypath

4else

5 excel資料庫 = "

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

" &mypath

6endif7

end property89

sub 查詢(mydata as

string, sql as

string, rng as

range)

10dim cnn as

object, rst as

object, i&

11set cnn = createobject("

adodb.connection")

12cnn.open mydata

13set rst =cnn.execute(sql)

14cells.clearcomments

15for i = 0

to rst.fields.count - 1

16 rng.offset(-1, i) =rst.fields(i).name

17next

18rng.copyfromrecordset rst

19cnn.close

20set cnn = nothing

21end sub

呼叫類模組:

1

sub並表查詢2()

2dim sql as

string, sql1 as

string

3dim sht as worksheet, sht_name as

string

4dim i as

long, mypath as

string, rng as

range

5 mypath =thisworkbook.fullname

6set rng = activesheet.range("a2"

)7dim data as

new資料庫

8 sql1 = "

select 姓名,語文,數學,英語,"9

foreach sht in

worksheets

10 sht_name =sht.name

11if sht_name <> activesheet.name then

12 sql = sql & sql1 & "

'" & sht_name & "

' as 班級 from [

" & sht_name & "

$] union all "13

endif

14next

15 sql = left(sql, len(sql) - 11)16

17data.查詢 data.excel資料庫(mypath), sql, rng

1819

end sub

查詢結果:

姓名	語文	數學	英語	班級

天 136 140 21 一班

地 62 90 98 一班

玄 200 126 10 一班

子 82 97 65 二班

醜 55 99 46 二班

寅 54 61 60 二班

甲 110 110 100 三班

乙 110 102 101 三班

丙 107 106 110 三班

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

關鍵 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 ...

C primer難點之類

類的難點解析 類三大特性 繼承,多型,封裝 訪問許可權控制 public private protect inline成員函式 1 在類內部定義的成員函式,將自動被作為inline處理 2 如果是顯示宣告inline 即不放在類定義體內,該函式定義應該放在.hl檔案裡,因為它對於使用它的,cpp檔案...

PHP之類補充

最終類與最終方法 如果父類中的方法被宣告為 final,則子類無法覆蓋該方法。如果乙個類被宣告為 final,則不能被繼承。final class a class a 抽象類與抽象方法 abstract class a class aextends a 介面 介面可以看作是抽象類的更高層面的抽象,可...