excel sql語(yǔ)句篩選重復(fù)數(shù)據(jù) 使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)篩選的方法,這個(gè)問(wèn)題是我們很多人都很困惑的一個(gè)問(wèn)題,excel sql語(yǔ)句篩選重復(fù)數(shù)據(jù)是我們非常常用的一個(gè)東西,也是我們工作和學(xué)習(xí)中必不可少的一個(gè)數(shù)據(jù)公式,那么具體我們要怎么做呢?下面就來(lái)看看這篇excel sql語(yǔ)句篩選重復(fù)數(shù)據(jù) 使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)篩選的方法的文章吧!
在使用VBA對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)時(shí),利用SQL語(yǔ)句能夠方便地實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢。本文使用SQL語(yǔ)句實(shí)現(xiàn)多條件查詢,使用Select語(yǔ)句從“成績(jī)管理.accdb”數(shù)據(jù)庫(kù)文件中獲取1班中數(shù)學(xué)和語(yǔ)文成績(jī)均大于98分的學(xué)生記錄,記錄使用For…Next結(jié)構(gòu)寫(xiě)入工作表的單元格。本文圖文介紹使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)篩選的具體操作方法。
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所示。
圖1 數(shù)據(jù)篩選結(jié)果