按條件篩選 使用SQL關鍵詞WHERE查詢中的條件指定要滿足什么標準信息,去掉不滿足條件的數(shù)據(jù)(刪除用戶不要的數(shù)據(jù))。 WHERE語句中可以有多個條件,條件之間可以用操作符AND 或者OR進行連接。 WHERE語句的語法結構如下: SELECT 列字段名稱 FROM [表名稱$] WHERE 列字段名 運算符 值
運算符包含大于、小于、等于、不等于、大于或等于、小于或等于、IN、 BETWEEN、AND等 。 應用實例說明,還是昨天數(shù)據(jù)(為了更好的更新今天的文章,修改了一點數(shù)據(jù)),只篩選出2號倉的數(shù)據(jù);再篩選出入庫數(shù)量大于60的數(shù)據(jù) 源數(shù)據(jù):查詢內容只查詢2號倉的數(shù)據(jù): 查詢2號倉且入庫數(shù)量大于60的數(shù)據(jù): 代碼運行的結果如下:代碼如下: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 條碼,倉位,貨號,入庫數(shù)量 FROM [商品信息目錄$] where 倉位='2號倉' and 入庫數(shù)量>60' 'Sql語句,查詢商品信息目錄表中條碼,倉位,貨號,入庫數(shù)量 并且只篩選出倉位=2號倉的數(shù)據(jù),并且入庫的數(shù)量要大于60 [a2:d1000].ClearContents '清空[a2:c1000]區(qū)域內容 Range('a2').CopyFromRecordset cnn.Execute(Sql) 'Execute語句先執(zhí)行SQL語句 '使用單元格對象的CopyFromRecordset方法將SQL查詢到的內容復制到D2單元格為左上角的單元格區(qū)域 '以上是第三步,執(zhí)行SQL語句并將數(shù)據(jù)讀入表格指定區(qū)域 cnn.Close '關閉鏈接 Set cnn = Nothing '釋放內存 End Sub 代碼解析代碼我放了一個例子,大部分的代碼是一致的,只有SQL的句子不一樣。需要注意的是:倉位='2號倉' 2好倉的的符號是英文輸入法下的單引號,不是雙引號。 點擊關注可以更方便的查看Excel VBA的案例文章私信 SQL 可以獲取SQL代碼的Excel文件私信 視頻 可以獲取54集VBA入門視頻私信 VBA或 vba 可以獲取文章中含VBA代碼的Excel文件 |
|