SQL 查詢語句-WHERE

按條件篩選 使用SQL關鍵詞WHERE查詢中的條件指定要滿足什麼標準信息,去掉不滿足條件的數據(刪除用戶不要的數據)。 WHERE語句中可以有多個條件,條件之間可以用操作符AND 或者OR進行連接。 WHERE語句的語法結構如下:

SELECT 列字段名稱 FROM [表名稱$] WHERE 列字段名 運算符 值

運算符包含大於、小於、等於、不等於、大於或等於、小於或等於、IN、 BETWEEN、AND等 。

應用實例說明,還是昨天數據(為了更好的更新今天的文章,修改了一點數據),只篩選出2號倉的數據;再篩選出入庫數量大於60的數據

源數據:

查詢內容

只查詢2號倉的數據:

查詢2號倉且入庫數量大於60的數據:

代碼運行的結果如下:

代碼如下:

Sub DoSql_Execute3() Dim cnn As Object, rst As Object Dim Mypath As String, Str_cnn As String, Sql As String Dim i As Long Set cnn = CreateObject("adodb.connection") '以上是第一步,後期綁定ADO Mypath = ThisWorkbook.FullName '以上獲取當前工作簿的路徑及名稱 If Application.Version

< 12 Then '格式為.xls,調用下述語句 Str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath Else '格式為.xlsx,調用下述語句 Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & Mypath End If cnn.Open Str_cnn '判斷一下當前Excel的版本,12.0以下使用“Provider=Microsoft.Jet.Oledb.4.0”,以上使用“Microsoft.ACE.OLEDB.12.0” '以上是第二步,建立鏈接 ' Sql = "SELECT 條碼,倉位,貨號,入庫數量 FROM [商品信息目錄$] where 倉位='2號倉' and 入庫數量>60" 'Sql語句,查詢商品信息目錄表中條碼,倉位,貨號,入庫數量 並且只篩選出倉位=2號倉的數據,並且入庫的數量要大於60 [a2:d1000].ClearContents '清空[a2:c1000]區域內容 Range("a2").CopyFromRecordset cnn.Execute(Sql) 'Execute語句先執行SQL語句 '使用單元格對象的CopyFromRecordset方法將SQL查詢到的內容複製到D2單元格為左上角的單元格區域 '以上是第三步,執行SQL語句並將數據讀入表格指定區域 cnn.Close '關閉鏈接 Set cnn = Nothing '釋放內存 End Sub

代碼解析

代碼我放了一個例子,大部分的代碼是一致的,只有SQL的句子不一樣。需要注意的是:倉位='2號倉' 2好倉的的符號是英文輸入法下的單引號,不是雙引號。

點擊關注可以更方便的查看Excel VBA的案例文章

私信 SQL 可以獲取SQL代碼的Excel文件

私信 視頻 可以獲取54集VBA入門視頻

私信 VBA或 vba 可以獲取文章中含VBA代碼的Excel文件