tft每日頭條

 > 職場

 > 在工作表中查找數據

在工作表中查找數據

職場 更新时间:2024-09-04 02:21:20

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

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

在工作表中查找數據(工作表數據查詢時)1

我們要篩選出以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

代碼截圖:

在工作表中查找數據(工作表數據查詢時)2

代碼解釋:

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

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

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

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

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

下面看代碼的運行:

在工作表中查找數據(工作表數據查詢時)3

今日内容回向:

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

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

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关職場资讯推荐

热门職場资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved