位置:首頁(yè) > 軟件操作教程 > 辦公軟件 > Excel > 問(wèn)題詳情

怎么使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)篩選?

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

1、啟動(dòng)Excel并打開(kāi)工作表,打開(kāi)Visual Basic編輯器,在工程資源管理器中插入一個(gè)模塊,在模塊的“代碼”窗口中輸入如下程序代碼:

Public Sub數(shù)據(jù)篩選()

Dim mydata As String,mytable As String,SQL As String '聲明變量

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

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

Dim i As Integer '聲明計(jì)數(shù)變量

ActiveSheet.Cells.Clear '清空單元格

mydata=ThisWorkbook.Path&"\成績(jī)管理.accdb" '指定數(shù)據(jù)庫(kù)文件

mytable="成績(jī)表" '指定工作表

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

With cn

.Provider="microsoft.ace.oledb.12.0" '指明OLEDB提供者

.Open mydata '打開(kāi)數(shù)據(jù)庫(kù)

End With

SQL="select*from"&mytable_&"where(班級(jí)= '1')and(數(shù)學(xué)>=98 or語(yǔ)文>=98)"'創(chuàng)建數(shù)據(jù)篩選命令

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

rs.Open SQL,cn,adOpenKeyset,adLockOptimistic '復(fù)制字段名

For i=1 To rs.Fields.Count

Cells(1,i)=rs.Fields(i-1).Name '將字段名寫(xiě)入單元格

Next i

Range("A2").CopyFromRecordset rs '復(fù)制數(shù)據(jù)

rs.Close '關(guān)閉記錄集對(duì)象

cnn.Close '關(guān)閉連接對(duì)象

Set rs=Nothing '刪除記錄集對(duì)象變量

Set cn=Nothing '刪除連接對(duì)象變量

End Sub

2、按F5鍵運(yùn)行該程序,“成績(jī)管理”數(shù)據(jù)庫(kù)中“班級(jí)”為“1”,“語(yǔ)文”和“數(shù)學(xué)”成績(jī)均大于98分的數(shù)據(jù)被篩選到工作表中,如圖1所示。

image.png

圖1 數(shù)據(jù)篩選結(jié)果

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

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