Excel VBA+SQL 代替Vlookup精確查找

SQL代替Vlookup 精確查找(左連接 "Left Outer JOIN" 用法) 語法如下:

Select 表名 .字段1,表名 .字段2,表名 .字段3,表名 .字段4 FROM 查詢表 AS 別名1 Left Outer JOIN 被查詢表 AS 別名2 ON 別名1.字段名=別名2.字段名

看起來很複雜,用起來很簡單。

源數據:

Excel VBA+SQL 代替Vlookup精確查找

問題如下

問題描述:需要按照查詢工作表的要求,來查詢數據表裡面的姓名,基本工資,部門等數據。具體結果如下圖

Excel VBA+SQL 代替Vlookup精確查找

代碼運行的結果如下:

Excel VBA+SQL 代替Vlookup精確查找

代碼如下:

Excel VBA+SQL 代替Vlookup精確查找

核心SQL語句

 Sql = "SELECT A.姓名,基本工資,部門 from[需查詢$] as a left outer join [數據表$] as b on b.姓名=a.姓名 "

注意事項:

 For i = 0 To rst.Fields.Count - 1
 .Cells(1, i + 1) = rst.Fields(i).Name
 '利用fields屬性獲取所有字段名,fields包含了當前記錄有關的所有字段,fields.count得到字段的數量
 '由於Fields.Count下標為0,又從0開始遍歷,因此總數-1
 Next 

另外:Left Outer JOIN 在SQL FROM語句中OUTER是可選的。通常習慣性寫為: LEFT JOIN。

本例利用fields屬性獲取所有字段名,這句也基本是常用的語句。

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

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

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


分享到:


相關文章: