久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當(dāng)前位置:首頁>職場>join數(shù)據(jù)庫查詢(join在工作表數(shù)據(jù)查找中的應(yīng)用)

join數(shù)據(jù)庫查詢(join在工作表數(shù)據(jù)查找中的應(yīng)用)

發(fā)布時(shí)間:2024-01-24閱讀(8)

導(dǎo)讀大家好,我們繼續(xù)講解VBA數(shù)據(jù)庫解決方案,今日講解第56講內(nèi)容:數(shù)據(jù)表查詢中,內(nèi)連接Innerjoin的講解。從這講開始給大家實(shí)例講解在查詢中各種連接方式的....

大家好,我們繼續(xù)講解VBA數(shù)據(jù)庫解決方案,今日講解第56講內(nèi)容: 數(shù)據(jù)表查詢中,內(nèi)連接Inner join的講解。從這講開始給大家實(shí)例講解在查詢中各種連接方式的應(yīng)用。為什么到現(xiàn)在才講解這塊內(nèi)容呢?是的,很多的內(nèi)容我在之前的文章中已經(jīng)開始利用了,相信大家已經(jīng)開始有所了解或許只是概念的欠缺,同時(shí),隨著講解的深入大家發(fā)現(xiàn)SQL語句是操作數(shù)據(jù)庫的一個(gè)非常重要的工具,我的觀點(diǎn)一直是:搭積木思想。不要過多的糾纏于其中的算法,只要會(huì)利用就可以。至于為什么這么寫,那是專業(yè)人員的事情。

好了,先給大家簡單的解釋一下什么是內(nèi)連接,內(nèi)連接的查詢操作及其特點(diǎn)。

內(nèi)連接也叫連接,是最早的一種連接。還可以被稱為普通連接或者自然連接,內(nèi)連接是從結(jié)果表中刪除與其他被連接表中沒有匹配行的所有行。返回與連接條件匹配的數(shù)據(jù)行,它使用比較運(yùn)算符比較被連接列的列值。在每個(gè)表中找出符合條件的共有記錄。

實(shí)例情景,下面的兩個(gè)工作表,一個(gè)是"數(shù)據(jù)",一個(gè)是"數(shù)據(jù)1"。我要把其中有型號(hào)一樣的數(shù)據(jù)提取出來,但是型號(hào),生產(chǎn)廠,數(shù)量來自"數(shù)據(jù)"工作表,而供應(yīng)商的數(shù)據(jù)來自"數(shù)據(jù)2"的數(shù)據(jù)。

join數(shù)據(jù)庫查詢(join在工作表數(shù)據(jù)查找中的應(yīng)用)(1)

下面看我給出的內(nèi)連接的代碼,其實(shí)代碼并不難:

Sub mynzRecords_56() 第56講

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Worksheets("56").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

strSQL = "Select a.型號(hào),a.生產(chǎn)廠,a.數(shù)量,b.供應(yīng)商 From [數(shù)據(jù)$]as a,[數(shù)據(jù)2$] as b Where a.型號(hào)=b.型號(hào)"

strSQL = "Select a.型號(hào),a.生產(chǎn)廠,a.數(shù)量,b.供應(yīng)商 From [數(shù)據(jù)$] as a INNER JOIN [數(shù)據(jù)2$] as b ON a.型號(hào)=b.型號(hào)"

rsADO.Open strSQL, cnADO, 1, 3

For i = 1 To rsADO.Fields.Count

Cells(1, i) = rsADO.Fields(i - 1).Name

Next

Range("a2").CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼截圖:

join數(shù)據(jù)庫查詢(join在工作表數(shù)據(jù)查找中的應(yīng)用)(2)

代碼講解:

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

此語句的代碼建立起ADO和Excel的連接,大家可以直接利用,只要是連接07版本以上的EXCEL即可。

2 strSQL = "Select a.型號(hào),a.生產(chǎn)廠,a.數(shù)量,b.供應(yīng)商 From [數(shù)據(jù)$]as a,[數(shù)據(jù)2$] as b Where a.型號(hào)=b.型號(hào)"

此語句的代碼為一個(gè)典型的SQL內(nèi)連接的語句,用的是WHERE的表達(dá)式,大家要注意我字段的寫法和定義a,b 兩個(gè)數(shù)據(jù)表的寫法。不可以有絲毫的錯(cuò)誤。

3 strSQL = "Select a.型號(hào),a.生產(chǎn)廠,a.數(shù)量,b.供應(yīng)商 From [數(shù)據(jù)$] as a INNER JOIN [數(shù)據(jù)2$] as b ON a.型號(hào)=b.型號(hào)"

此語句的代碼為一個(gè)典型的SQL內(nèi)連接的語句的另一種寫法,用的是的INNER JOIN….on…的表達(dá)式,大家要注意這種寫法和定義a,b 兩個(gè)數(shù)據(jù)表的寫法。大體上和上面的寫法是一致的,讀者可以根據(jù)自己的習(xí)慣利用。

下面看代碼的運(yùn)行:

join數(shù)據(jù)庫查詢(join在工作表數(shù)據(jù)查找中的應(yīng)用)(3)

大家要注意,上述型號(hào)為QQ01的供應(yīng)商為RRR05是取自數(shù)據(jù)2的數(shù)據(jù)。

今日內(nèi)容回向:

1 什么是內(nèi)連接?

2 內(nèi)連接的兩種表法方式是什么?

3 如果將select后的字段去掉換成*號(hào)會(huì)是什么樣的結(jié)果?

歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-235861.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖