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