位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

怎么使用SQL語句實(shí)現(xiàn)對(duì)Excel工作表數(shù)據(jù)進(jìn)行查詢?

提問人:周麗平發(fā)布時(shí)間:2021-07-24

1、啟動(dòng)Excel并打開工作簿,在這個(gè)工作簿中,工作表Sheet1放置商品信息記錄,如圖1所示;工作表Sheet2用于對(duì)商品記錄進(jìn)行查詢,其結(jié)構(gòu)如圖2所示。

image.png

圖1 放置商品信息記錄的工作表

image.png

圖2 用于商品記錄查詢的工作表

2、打開Visual Basic編輯器,在工程資源管理器中插入一個(gè)模塊,在模塊的“代碼”窗口中輸入如下程序代碼:

Sub CheckData()

Dim cnn As ADODB.Connection '聲明連接對(duì)象變量

Dim rs As ADODB.Recordset '聲明記錄集對(duì)象

Dim strSql As String

Dim str As String

On Error Resume Next

Set cnn=CreateObject("ADODB.Connection") '創(chuàng)建連接對(duì)象變量

Set rs=CreateObject("ADODB.Recordset") '創(chuàng)建記錄集對(duì)象記錄

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;"_&"Extended Properties=Excel 8.0;"_&"Data Source="&ThisWorkbook.FullName

str=ActiveSheet.Range("B1").Value '獲取當(dāng)前單元格內(nèi)容

strSql="Select*FROM[Sheet1$]Where商品like '%"&str&"%'"'創(chuàng)建數(shù)據(jù)篩選命令

rs.Open strSql,cnn,adOpenStatic

With ActiveSheet

.Range("A4:D100").ClearContents '清除單元格記錄

.Range("A4").CopyFromRecordset rs '復(fù)制篩選結(jié)果

End With

rs.Close

cnn.Close

Set rs=Nothing

Set cnn=Nothing

End Sub

3、首先在Sheet2工作表中輸入需要查詢的商品名稱,如圖3所示。運(yùn)行CheckData()過程,在Sheet2工作表中將列出查詢結(jié)果,如圖4所示。

image.png

圖3 輸入商品名稱

image.png

圖4 獲得查詢結(jié)果

繼續(xù)查找其他問題的答案?

回復(fù)(0)
返回頂部