VBA Excel使用SQL進行查詢

2021-07-27 04:47:55 字數 1159 閱讀 5631

sub query()

dim conn as object, rst as object

dim strconn as string, strsql as string

dim i as integer, pathstr as string

set conn = createobject("adodb.connection")

set rst = createobject("adodb.recordset")

pathstr = thisworkbook.fullname '設定工作簿的完整路徑和名稱

case is <= 11

strconn = "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & pathstr

case is >= 12

strconn = "provider=microsoft.ace.oledb.12.0;data source=" & pathstr & ";extended properties=""excel 12.0;hdr=yes"";"""

end select

'設定sql查詢語句

strsql = "select distinct 發站 from [lmsdata2016.12$]"

conn.open strconn '開啟資料庫鏈結

set rst = conn.execute(strsql) '執行查詢,並將結果輸出到記錄集物件

with sheet1

.cells.clear

for i = 0 to rst.fields.count - 1 '填寫標題

.cells(1, i + 1) = rst.fields(i).name

next i

.range("a2").copyfromrecordset rst

.cells.entirecolumn.autofit '自動調整列寬

end with

rst.close '關閉資料庫連線

conn.close

set conn = nothing

set rst = nothing

end sub

使用SQL進行遞迴查詢

在工作當中會經常用到遞迴,比如選單的展示。一種方法就是從資料庫中取出所有的資料,然後在程式中迴圈獲取符合條件的資料。另外一種方法就是使用sql直接讀取符合條件的資料。對於遞迴查詢,t sql和pl sql進行了不同的處理。以表deparment為例 表結構為 id 部門內碼,deptcode 部門編...

SQL使用萬用字元進行過濾

為什麼引入萬用字元?之前提到的都是匹配已知值,但是對於字元來說存在侷限性,為了解決這種問題,提出了萬用字元 注意 萬用字元只能用在文字匹配上 like 匹配字串 可以用來表示所有以 匹配字串 開頭的 場景 找到所有名字以 小 開頭的學生的成績 select name,score from stude...

SQL 使用游標進行遍歷

前兩天乙個同事大叔問了這樣乙個問題,他要對錶做個類似foreach的效果,問我怎麼搞,我想了想,就拿游標回答他,當時其實也沒用過資料庫中的游標,但是以前用過ado裡面的,感覺應該差不多。首先,讓我們先來建張測試表 use loadtest2010 create table testcursor 建立...