国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VBA與數(shù)據(jù)庫解決方案:Recordset記錄集合的動態(tài)查詢,并顯示結(jié)果

大家好,今日繼續(xù)講解VBA與數(shù)據(jù)庫解決方案的第10講內(nèi)容,打開一個指定的數(shù)據(jù)庫記錄集,把所得的數(shù)據(jù)顯示到工作表中的方法。今日的內(nèi)容是和第8講,第9講內(nèi)容是相連續(xù),在第9講中講了打開記錄集的用的方法是rsADO.Open strSQL, cnADO, 1, 3,在第8講中我們講了還有一種是Execute(strSQL)方法,今日我們就講利用這種方法達到我們的目的,同時在SQL語句中的我們將查詢設置為一個動態(tài)的查詢。

如下面的工作表文件:我們要根據(jù)I2單元格的提示部門信息來查找工作表的數(shù)據(jù)并將查詢的結(jié)果放在左側(cè)的區(qū)域:

我們看代碼:

Sub mynzra2()

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim i As Integer

strPath = ThisWorkbook.Path & '\mydata.accdb'

Set cnADO = CreateObject('ADODB.Connection')

With cnADO

.Provider = 'Microsoft.ACE.OLEDB.12.0'

.Open strPath

End With

strSQL = 'SELECT * FROM 職員表 WHERE 部門= '' & Cells(2, 9) & ' ''

Set rsADO = cnADO.Execute(strSQL)

Columns('A:E').Select

Selection.ClearContents

Cells(2, 9).Select

For i = 0 To rsADO.Fields.Count - 1

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

Next i

Range('A2').CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼截圖:

代碼精講:

① Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim i As Integer

strPath = ThisWorkbook.Path & '\mydata.accdb'

Set cnADO = CreateObject('ADODB.Connection')

上面的代碼和第9講的相同,分別聲明了幾個變量并建立了數(shù)據(jù)庫的ADO連接,

② 在打開數(shù)據(jù)庫時同時設置了連接:

With cnADO

.Provider = 'Microsoft.ACE.OLEDB.12.0'

.Open strPath

End With

這種連接方式采用了我在第8講中講到另外的方式,可以參考一下。

③strSQL = 'SELECT * FROM 職員表 WHERE 部門= '' & Cells(2, 9) & ' ''

我們要重點的講解一下這條語句,之前有朋友聯(lián)絡問過這類語句的書寫方式,今日可以一并回答,這里要注意變量,變量是代碼中的變量,在SQL語句中是不能出現(xiàn)變量的,要是常量并用引號括起來,所以在上面的語句中

a 'SELECT * FROM 職員表 WHERE 部門= '' 為第一部分

b 最后的 ' ''為第三部分

c Cells(2, 9)為第二部分。

三個部分中間用'&'連接起來。大家要務必記住這種書寫的方式,這樣在程序的運行中SQL語句才正確,下面看看在運行過程中的SQL語句:

④ Set rsADO = cnADO.Execute(strSQL) 對于這條語句,我在第8講的內(nèi)容中,也講到是一種打開記錄集的方式之一,是Connection對象的Execute方法,通過上面語句,我們就可以執(zhí)行查詢,并將結(jié)果保存到集合的對象中。下面我將Connection對象的Execute方法再次專門的講解一下:

ADODB.Connection對象的Execute方法

該方法用于執(zhí)行SQL語句。根據(jù)SQL語句執(zhí)行后是否返回記錄集,該方法的使用格式分為以下兩種:

第一種:執(zhí)行SQL查詢語句時,將返回查詢得到的記錄集。用法為:

Set對象變量名=連接對象.Execute('SQL語句')

Execute方法調(diào)用后,會自動創(chuàng)建記錄集對象,并將查詢結(jié)果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以后對象變量就代表了該記錄集對象。

第二種:執(zhí)行SQL的操作性語言時,沒有記錄集的返回。此時用法為:

連接對象.Execute 'SQL語句' [,RecordAffected][, Option]

參數(shù)a RecordAffected為可選項,此出可放置一個變量,SQL語句執(zhí)行后,所生效的記錄數(shù)會自動保存到該變量中。通過訪問該變量,就可知道SQL語句隊多少條記錄進行了操作。

參數(shù)b Option 可選項,該參數(shù)的取值通常為adCMDText,它用于告訴ADO,應該將Execute方法之后的第一個字符解釋為命令文本。通過指定該參數(shù),可使執(zhí)行更高效

在第9講的講解中,我們用了第二種方法,今日的代碼有的是第一種代碼。至于那種好,我這里沒有說明,可以根據(jù)寫代碼人員的喜好即可。

代碼的運行結(jié)果:

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

1 Connection對象的Execute方法有哪兩種方法?

2 如何實現(xiàn)可控的指定查詢?并將結(jié)果顯示?

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA數(shù)據(jù)庫解決方案第39講:利用ADO,實現(xiàn)模糊查詢
利用VBA向一個已有的數(shù)據(jù)表中添加數(shù)據(jù)記錄的方法
如何在Excel中使用SQL語言?
工作表數(shù)據(jù)與UserForm窗口的交互:如何實現(xiàn)數(shù)據(jù)的精確查找
提取固定位置(行或者單元格)數(shù)據(jù)的方法
Excel之VBA常用功能應用篇:VBA查詢Access數(shù)據(jù)庫操作方法
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服