【分享成果,随喜正能量】你多學一樣本事,就少說一句求人的話。我始終相信一句話:隻有自己足夠強大,才不會被别人踐踏。
《VBA數據庫解決方案》教程是我推出第二套教程,目前已經是第一版修訂了。這套教程定位于中級,是學完字典後的另一個專題講解。數據庫是數據處理的利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,教程第一版的修訂内容主要是完成所有程序文件的32位和64位OFFICE系統測試。
這套教程共兩冊,八十四講,今後一段時間會給大家陸續推出修訂後的教程内容。今日的内容是第7講:打開數據庫的數據記錄集。
第七講 如何利用Recordset對象打開數據庫的數據記錄集
我們上一講講了Recordset 對象的一些屬性、方法和事件。我們今日繼續講解Recordset 對象的相關知識,如何利用Recordset對象打開數據庫的數據記錄集合。
在講解之前,我們還要補充些必要的知識點:
1 Recordset 對象的更新和訪問
1.1 Recordset 對象能夠支持兩種更新類型
① 立即更新,一旦調用 Update 方法,所有更改被立即寫入數據庫。
② 批更新,provider 将緩存多個更改,然後使用 UpdateBatch 方法把這些更改傳送到數據庫。
1.2 另外在訪問記錄的時候,ADO定義了 4 中不同的遊标(指針)類型
① 動态遊标 :允許您查看其他用戶所作的添加、更改和删除
② 鍵集遊标 :類似動态遊标,不同的是您無法查看有其他用戶所做的添加,并且它會防止您訪問其他用戶已删除的記錄。其他用戶所做的數據更改仍然是可見的。
③ 靜态遊标 :提供記錄集的靜态副本,可用來查找數據或生成報告。此外,由其他用戶所做的添加、更改和删除将是不可見的。當您打開一個客戶端 Recordset 對象時,這是唯一被允許的遊标類型。
④ 僅向前遊标: 除僅允許在記錄中向前滾動之外,其行為類似靜态遊标。這樣,當需要在 Recordset 中單程移動時就可提高性能。
1.3為什麼要設計這四個遊标類型呢?
這就是搭建數據庫的良苦用心,這四種類型也就是客戶訪問數據庫的不同類型,或者稱之不同的權限,有的是完全所有權權限訪問的,任何訪問都可以享用,有的隻是擁有部分權限,這要依據用戶的性質來決定你所享受的權限了。當然這點和VBA的聯系還不是十分的密切,隻是講到數據庫和大家順帶說一下。
2 ADO三個對象間的相互聯系2.1 Command對象和Recordset對象依賴于Connection對象的連接;
2.2 Command對象結合SQL命令可以取代Recordset對象,但遠沒有Recordset對象靈活、實用;
2.3 Recordset對象它隻能實現數據表内記錄集操作. 記錄集(Recordset):對表執行查詢操作時,返回的一組特定記錄。
3 打開一個Recordset記錄集
一定要清楚,打開記錄集前要連接數據庫,連接Connection請參考上一講内容;
Dim cnADO As New ADODB.Connection
Dim strPath As String
strPath = ThisWorkbook.Path & "\mydata.accdb"
cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath
在打開記錄集前還要做的工作有:聲明Recordset對象,創建Recordset對象
Dim rsZYS As ADODB.Recordset
Set rsZYS = New ADODB.Recordset
rsZYS.Open "職員表", cnADO, 1, 3
MsgBox rsZYS.RecordCount
rsZYS.Close
cnADO.Close
Set rsZYS = Nothing
Set cnADO = Nothing
代碼解讀:
① rsZYS.Open "職員表", cnADO, 1, 3是打開記錄集,。
② MsgBox rsZYS.RecordCount 彈出對話框,提示職員表的信息個數
③ rsZYS.Close
cnADO.Close
關閉記錄集和數據庫的連接,注意要先關閉記錄集,再關閉連接,和打開的順序是相反的。
④ Set rsZYS = Nothing
Set cnADO = Nothing
釋放内存,
運行後會彈出記錄數:(數據庫内記錄行數)
這節的内容是我們開始進入數據庫内部的操作了,大家不要急,要慢慢來,我數據庫的講解是循序漸進的。
今日内容回向:
1 Recordset 對象 有幾種更新方式?
2 Recordset 對象 如何打開記錄集?
我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
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!