怎么打開sql數(shù)據(jù)庫(kù)文件,ADO連接...
732
2023-11-06
【分享成果,隨喜正能量】當(dāng)你幸福時(shí),若幸福建立在他人痛苦之上,這不叫幸福,而是造業(yè);當(dāng)快樂(lè)時(shí),若快樂(lè)會(huì)導(dǎo)致痛苦,這不叫快樂(lè),而是痛苦尚未成熟;當(dāng)富有時(shí),若財(cái)富源于不正行業(yè),這不叫富裕,而是累債;當(dāng)自感聰明,若聰明用于自私,這不叫聰明,而是愚昧。不立于惡,所以不生苦。
《VBA數(shù)據(jù)庫(kù)解決方案》教程是我推出第二套教程,目前已經(jīng)是第一版修訂了。這套教程定位于中級(jí),是學(xué)完字典后的另一個(gè)專題講解。數(shù)據(jù)庫(kù)是數(shù)據(jù)處理的利器,教程中詳細(xì)介紹了利用ADO連接ACCDB和EXCEL的方法和實(shí)例操作,教程第一版的修訂內(nèi)容主要是完成所有程序文件的32位和64位OFFICE系統(tǒng)測(cè)試。這套教程共兩冊(cè),八十四講,今后一段時(shí)間會(huì)給大家陸續(xù)推出修訂后的教程內(nèi)容。今日的內(nèi)容是第8講:ADO連接數(shù)據(jù)庫(kù),打開數(shù)據(jù)記錄集。第八講 從創(chuàng)建ADO對(duì)象,到打開記錄集大家好,我們今天講解VBA數(shù)據(jù)庫(kù)解決方案第8講:從創(chuàng)建一個(gè)ADO連接,到打開記錄集的過(guò)程回顧。我們的數(shù)據(jù)庫(kù)講解到本講,一些基本的概念,以及需要了解的一些基本知識(shí)就講的差不多了,將逐漸過(guò)渡到以實(shí)際問(wèn)題的解決為側(cè)重點(diǎn)了。今天我們將之前講解的內(nèi)容再大概的回顧一下。
1 數(shù)據(jù)庫(kù)的知識(shí)點(diǎn)我們首先講了數(shù)據(jù)庫(kù),務(wù)必要理解的是關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系是指什么。所謂的關(guān)系就是表,就是數(shù)據(jù)庫(kù)中的表格,那么所謂的關(guān)系數(shù)據(jù)庫(kù)就是由表格組成的數(shù)據(jù)庫(kù)。
2 創(chuàng)建ADO對(duì)象我們講連接數(shù)據(jù)庫(kù)的各種連接方式中,主要講了ADO的連接方式,這種方式是比較年輕的連接方式,所謂的ADO就是ActiveX Data Objects,對(duì)于這個(gè)詞的解釋不必過(guò)多的追求,只要知道只是一組數(shù)據(jù)對(duì)象即可。在連接數(shù)據(jù)庫(kù)的時(shí)候,給出了兩種方式的ADO連接。
第一種辦法是前期綁定,即引用”Microsoft ActiveX Data Objects 2.x Library”找到其中字盡可能高一點(diǎn)的版本,創(chuàng)建連接的代碼語(yǔ)句如下:Dim cnADO As ADODB.Connection ’聲明一個(gè)ADO對(duì)象
Set cnADO = New ADODB.Connection ’創(chuàng)建一個(gè)ADO對(duì)象
或者在聲明是直接創(chuàng)建,代碼寫為:
Dim cnADO As New ADODB.Connection
第二種辦法:直接的創(chuàng)建,即后期的綁定:代碼如下Dim cnADO As Object’聲明一個(gè)ADO對(duì)象
Set cnADO = CreateObject("ADODB.Connection")’創(chuàng)建一個(gè)ADO對(duì)象
3 ADO對(duì)象連接到數(shù)據(jù)庫(kù)我之前的代碼中有兩種連接方式:
第一種: strPath = ThisWorkbook.Path & "\mydata.accdb"
cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath
第二種:
With cnADO
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open strPath
End With
兩者寫法不一樣,其實(shí)內(nèi)容是一樣的,就是設(shè)置Connection對(duì)象的Provider和ConnectionString的兩個(gè)屬性。
4 SQL語(yǔ)句及打開記錄集下一個(gè)步驟是記錄集的操作,這里我們講了SQL即結(jié)構(gòu)化查詢語(yǔ)句,如Sql = "Select 班級(jí),姓名 From [高三年級(jí)]"上面Sql語(yǔ)句的意思是從“高三年級(jí)”表中查詢(提取)所有記錄的班級(jí)和姓名兩個(gè)字段。
在打開記錄集時(shí)同樣也有兩種方法可以利用;
4.1第一種方法:使用Connection對(duì)象的Execute方法
示例1: Set rst = cnADO.Execute(Sql) 執(zhí)行查詢,并將結(jié)果保存到rst對(duì)象中。
示例2 :Execute 方法
語(yǔ)法:connection.Execute CommandText, RecordsAffected, Options
返回: Recordset 對(duì)象引用。
參數(shù):
① CommandText 字符串,通常為要執(zhí)行的 SQL 語(yǔ)句、表名。
② RecordsAffected 可選,長(zhǎng)整型變量,提供者向其返回操作所影響的記錄數(shù)目。
③ Options 可選,長(zhǎng)整型值,指示提供者應(yīng)如何計(jì)算 CommandText 參數(shù)。
后面兩個(gè)可選參數(shù)我們一般用不到去設(shè)置。使用Connection對(duì)象的Execute方法返回的結(jié)果集,始終為只讀、僅向前的游標(biāo)。也無(wú)法取得返回結(jié)果集合中的記錄數(shù)。一般在只需將結(jié)果一次性寫入工作表中(CopyFromRecordset)時(shí)使用,它的好處是寫法簡(jiǎn)潔。如果需要處理返回結(jié)果的更多操作,應(yīng)使用下面的方法。
4.2 第二種方法:使用Recordset對(duì)象的Open方法
示例1:rst.Open Sql, cnn 同前面的Set rst = cnADO.Execute(Sql)一樣。
示例2 Open 方法
語(yǔ)法 :recordset.Open Source, ActiveConnection, CursorType, LockType, Options
參數(shù):
①:Source 可選,變體型,通常為SQL 語(yǔ)句、表名。
②:ActiveConnection 可選。變體型,一般為有效 Connection 對(duì)象變量名。
③:CursorType 可選,CursorTypeEnum 值,打開 Recordset 時(shí)使用游標(biāo)類型。
④ LockType 可選。打開 Recordset 時(shí)使用的鎖定(并發(fā))類型。
⑤:Options 可選,長(zhǎng)整型值,用于指示提供者如何計(jì)算 Source 參數(shù)。
其中參數(shù)③游標(biāo)是可以指定的類型有四種:0 AdOpenForwardOnly 默認(rèn)值 打開僅向前類型游標(biāo)。
1 AdOpenKeyset 打開鍵集類型游標(biāo)。
2 AdOpenDynamic 打開動(dòng)態(tài)類型游標(biāo)。
3 AdOpenStatic 打開靜態(tài)類型游標(biāo)。
如果需要計(jì)算返回記錄集的記錄數(shù)(RecordCount),需要將游標(biāo)指定為adOpenStatic或adOpenKeyset類型,如果需要對(duì)游標(biāo)進(jìn)行更新,則需要指定為adOpenKeyset或AdOpenDynamic類型。
其中參數(shù)④LockType可以選的類型如下:1 AdLockReadOnly (默認(rèn)值)只讀 — 不能改變數(shù)據(jù)。
2 AdLockPessimistic 保守式鎖定,提供者完成確保成功編輯記錄所需的工作,通常通過(guò)在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄。
3 AdLockOptimistic 開放式鎖定(逐個(gè)) — 提供者使用開放式鎖定,只在調(diào)用Update 方法時(shí)才鎖定記錄。
4 AdLockBatchOptimistic 開放式批更新—用于批更新模式(與立即更新模式相對(duì))。
到此,我們就把VBA、數(shù)據(jù)庫(kù)、ACCESS、ADO、SQL等一些重要的詞語(yǔ)概念連接到一起了。
今日內(nèi)容回向:
1 從數(shù)據(jù)庫(kù)到打開記錄集的各個(gè)步驟是否清楚了呢?
2 如何打開一個(gè)SQL記錄集?
我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個(gè)教程中:第7套教程(共三冊(cè)):《VBA之EXCEL應(yīng)用》:是對(duì)VBA基本的講解第1套教程(共三冊(cè)):《VBA代碼解決方案》:是入門后的提高教程第4套教程(16G):VBA代碼解決方案之視頻(第一套的視頻講解)第3套教程(共兩冊(cè)):《VBA數(shù)組與字典解決方案》:是對(duì)數(shù)組和字典的專題講解第2套教程(共兩冊(cè)):《VBA數(shù)據(jù)庫(kù)解決方案》:是對(duì)數(shù)據(jù)庫(kù)的專題講解第6套教程(共兩冊(cè)):《VBA信息獲取與處理》:講解VBA的網(wǎng)絡(luò)及跨程序應(yīng)用第5套教程(共兩冊(cè)):VBA中類的解讀和利用:類及接口技術(shù)的講解第8套教程(共三冊(cè)):VBA之Word應(yīng)用(最新教程):word中VBA的利用上述教程的學(xué)習(xí)順序:① 7→1→3→2→6→5或者7→4→3→2→6→5。② 7→8
如何學(xué)習(xí)VBA呢? 概括的說(shuō)就是: 學(xué)習(xí)過(guò)程中要信、解、受、持,更要有回向的業(yè)力。無(wú)論您在學(xué)習(xí)的任何階段,都要對(duì)照教程的知識(shí)點(diǎn)加持自己的實(shí)際工作,總會(huì)有豐厚的收獲。發(fā)表評(píng)論
暫時(shí)沒(méi)有評(píng)論,來(lái)?yè)屔嘲l(fā)吧~