工作表數據查詢時,類似篩選功能LIKE和NOT LIKE的應用

2021-01-09 VBA語言專家

大家好,我們繼續講解VBA資料庫解決方案,今日講解第53講內容:工作表查詢時,類似於篩選功能的LIKE和NOT LIKE 的應用。大家在工作的時候,利用EXCEL操作,篩選是必不可少的工具之一。例如我們可以篩選以某個字符開頭的數據,或者篩選不以某個字符開始的數據,那麼這個功能如何在ADO連接EXCEL進行查詢時實現呢?

實例講解,我們看下面的數據:

我們要篩選出以W開始的生產廠的數組和不是以W開始的數據。如何實現呢?

下面看我給出的代碼:

Sub mynzRecords_53() '第53講 工作表數據查詢時,類似篩選功能LIKE和NOT LIKE的應用.

Dim cnADO, rsADO As Object

Dim strPath, strSQL1, strSQL2, strSQL3, strSQL4 As String

Worksheets("53").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath

strSQL1 = "select 型號,生產廠,供應商,數量 from [數據$] WHERE 生產廠 Like 'W%'"

arr = Array("型號", "生產廠", "供應商", "數量")

[a1:d1] = arr

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset cnADO.Execute(strSQL1)

strSQL2 = "select 型號,生產廠,供應商,數量 from [數據$] WHERE 生產廠 NOT Like 'W%'"

[a65536].End(xlUp).Offset(2, 0).CopyFromRecordset cnADO.Execute(strSQL2)

cnADO.Close

Set cnADO = Nothing

Set rsADO = Nothing

End Sub

代碼截圖:

代碼解釋:

1 strSQL1 = "select 型號,生產廠,供應商,數量 from [數據$] WHERE 生產廠 Like 'W%'"

這句的解釋是要查出以W開始的生產廠的記錄。大家要注意這種寫法。注意的是這種寫法要特別留意。要記住代碼儘可能不要錄入,要以拷貝為主,然後再做必要的修正。

2 strSQL2 = "select 型號,生產廠,供應商,數量 from [數據$] WHERE 生產廠 NOT Like 'W%'"

這句的解釋是要查出不是以W開始的生產廠的記錄。這裡用的是NOT LIKE 語句。也是一種SQL語句的固定用法。

我最近在講各種這樣的連接啊,查詢結構啊,大家要注意我的語句寫法,如果語句不對是得不到正確結果的。我的系列文章在講我的經驗,甚至代碼中也有工作實例的影子。要學寫代碼的經驗,我們的工作要以實用為主,不是學術的研究。

下面看代碼的運行:

今日內容回向:

1 如何實現工作表的篩選功能?

2 LIKEN 和 NOT LIKE 的語法是怎麼樣的?

相關焦點

  • select學習第11天——LIKE通配符(SQL)
    一、通配符1、 關於%通配符2、_與%使用方法相同二、LIKE的使用方法1、SQL句式Select 列欄位名 From [工作表名$] Where 列欄位 Like '關鍵字'1、 舉例說明(1) 篩選出含有姓張姓名的記錄SELECT * from [案例1$
  • Laravel 使用like匹配字符串的用法示例
    引言 本文接著laravel的功能講解,說一說在模型中查詢條件內,使用like這樣的SQL關鍵字 進行子字符串匹配。並通過幾個示例,和不同的實現方法,為大家展示laravel的靈活性。
  • 單表千萬行資料庫:LIKE 搜索優化手記
    &39;以上三種分別對應了:左前綴匹配、右後綴匹配和模糊查詢,並且對應了不同的查詢優化方式。當需要查找結尾為「孫悟空」的數據時,去查找以「空悟孫」開頭的數據即可。具體做法是:在該表中增加「txt_back」列,將「txt」列的值倒置後,填入「txt_back」列中,最後為 「txt_back」列增加索引。
  • mysql優化篇:where中的like和=的性能分析
    一、引言那使用過資料庫的人大部分都知道,like和=號在功能上的相同點和不同點,那我在這裡簡單的總結下: 1,不同點:like可以用作模糊查詢,而&39;不支持此功能;如下面的例子,查詢info表中欄位id第一個字母為1的數據:
  • MySQL全文索引、聯合索引、like查詢、json查詢速度哪個快
    查詢背景  有一個表tmp_test_course大概有10萬條記錄,然後有個json欄位叫outline,存了一對多關係(保存了多個編碼,例如jy1577683381775)  我們需要在這10萬條數據中檢索特定類型的數據,目標總數據量:2931條  select count(*) from
  • MySQL全文索引、聯合索引、like查詢、json查詢速度大比拼
    查詢背景有一個表tmp_test_course大概有10萬條記錄,然後有個json欄位叫outline,存了一對多關係(保存了多個編碼,例如jy1577683381775)我們需要在這10萬條數據中檢索特定類型的數據,目標總數據量:2931條SELECTCOUNT
  • NET開發-在SQL Server資料庫中,使用like結合通配符實現模糊查詢
    模糊查詢例如,查詢姓名為李小強的數據,則要使用姓名=李小強進行查詢,這是相等查詢。什麼是模糊查詢呢?模糊是指只匹配某一個字符或多個字符,然後中間或兩邊為任意字符,這就是模糊查詢,如查詢姓李的學生,則就是模糊查詢。與之匹配的有李小強、李大強、李小花、李一鳴等。2.使用模糊查詢在SQL Server中,模糊查詢要使用like在Where條件中進行查詢。在搜索資料庫中的數據時,SQL通配符可以替代一個或多個字符。SQL通配符必須與 LIKE運算符一起使用,LIKE是關鍵字。
  • 大數據查詢時,固定長度字符和多個起始字符匯總查詢的實現
    大家好,我們繼續講解VBA資料庫解決方案,今日講解第54講內容:工作表查詢時,固定長度字符和多個起始字符匯總查詢功能的實現。在上一講的內容中,我們講了類似於篩選功能的實現,今日內容和上講比較複雜些,其一是固定長度的字符篩選,也就是說篩選的是具有固定長度的符號;其二,多個起始字符的查詢,是指多個開始符號的字符。
  • 英語be like 和 look like 的區別
    英語中,be like 和 look like 都有「像」的意思,今天我們一起學習一下它們的區別。1. be like: 意為「像…一樣」。重點表達人的性格、氣質、品德的相像。He is like his father.他很誠實。他隨他的父親。 例句2: He is always late. He is really like his brother.他總是遲到。他真像他的哥哥。
  • 老韓乾貨奉上mysql中的like和union(all)語句
    今天老韓來講一下like語句和union語句,一起來學吧。一、like語句;實際工作中數據索引的時候可能並不會給你明確指定要哪些數據,那麼結合前面所講的where字句就無法實現需求了,那就需要用模糊查詢like語句了。一起先看例子數據,student表中的數據;老韓需要看到所有姓王的同學信息,這個需求如何實現呢?
  • 3分鐘短文|Laravel 使用like匹配字符串的用法示例
    引言本文接著laravel的功能講解,說一說在模型中查詢條件內,使用like這樣的SQL關鍵字 進行子字符串匹配。並通過幾個示例,和不同的實現方法,為大家展示laravel的靈活性。現在根據傳入的參數,要篩選出某個電子郵件關聯的所有訂閱記錄, 或者根據用戶姓名關鍵字關聯的所有訂閱記錄,代碼如下:BookingDates::where(&39;, Input::get(&39;))->orWhere(&39;, &39;, &39; .
  • 學習like的用法,like是喜歡的意思
    首先大家了解一下like的第三人稱單數是likes在英語當中不同的人稱會用到不同的動詞形式我們把8個人稱代詞分為兩個家族I /we/you/they +like表格證明這是like和人稱之間的關係,我能還得分析like和賓語之間的關係l主語+like/likes
  • SQL優化(2):別讓like要了咱的命
    帶有like的sql語句是否會觸發索引印象中使用like就是跳過索引,進行全表掃描,一表1億數據的表,程序直接趴下了。其實非也,mysql原生是支持like前綴索引的前綴索引原理用索引數據全掃描取代表的全掃描。因為索引全掃描的代價是全表掃描的1/N (即索引塊數與數據塊數的比例),表越大,優化效果越明顯。
  • Excel篩選功能:快捷的Excel數據定位技巧
    眾所周知,數據篩選是EXCEL的常用技能,它可以配合日期、文本和數值類型,結合不同的篩選條件,幫助我們一秒定位想要的數據。但數據篩選還有個進階功能---高級篩選,它在原篩選的基礎上,可以一鍵實現多條件篩選,更加方便高效。今天來給大家介紹一下!
  • 你認識hate和like開言英語告訴你hate-like到底是討厭還是喜歡?
    01.開言英語—Hate-like美國網絡社交中經常用到這個表達: Hate-like: 討厭並點讚,表示一種嫉妒的心理這裡的like是指在社交軟體上「點讚」的動作,你羨慕嫉妒朋友能出國遊: You hate-like your friend's vacation photos on social media.
  • 數據查詢中,三個工作表聯合查詢的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日的內容是第70講: 數據查詢中,三個工作表聯合查詢的方法。在各種查詢中,內連接,左外連接,右外連接等等,這些方法大家在工作中要多加利用,並且靈活利用,利用多了,知識就變成自己的了。今日我們講解的是三個工作表的聯合查詢,也就是說三個工作表的數據要一次查詢。我們還是看下面的實例講解。
  • SQL Server資料庫基礎知識第四講:數據查詢(理論部分)
    簡單查詢簡單查詢是最簡單的一種查詢方式,可以用來查詢所有數據,也可以進行行或列的數據篩選,還可以對數據進行排序。02模糊查詢1、like模糊查詢用來進行where條件的篩選,模糊匹配查詢是相對於精確匹配查詢而言的
  • 2020年1月(類)Roguelike手機遊戲APP關注度排行榜
    2020年1月(類)Roguelike手機遊戲APP關注度排行榜  鄭萃瑜 • 2020-01-09 10:15:52
  • Excel工作表中的篩選,怎麼用?你確定都掌握嗎?
    Excel工作表中,經常要對數據進行挑選,除了常用的篩選功能外,還可以使用高級篩選技巧,其功能更強大,也更為實用!一、Excel工作表篩選:普通單條件篩選目的:篩選相應「學歷」下的員工信息。三、Excel工作表篩選:關鍵詞篩選目的:同時篩選「大本」和「大專」的員工信息。方法:1、選中工作表數據區域中的任意單元格,【數據】-【篩選】,給標題行添加篩選按鈕。
  • Mybaits中Like 的使用方式以及一些注意點
    和 # 使用的區別。());// 查出一條 List<User> test1 = userMapper.findUserByLikeName1("' or '1=1"); //select * from t_user where name like '%' or '1=1%' // 分析: '1=1%' 成立 System.out.println(test1.size());// 查出了全部數據}注意:排序的欄位也容易出現這個問題