VBA 資料庫解決方案教程(版權所有 10090845)是我推出的第二套教程,目前正處於第二版修訂版中。 這套教程定位於中級水平,是學字典後的另乙個專題。 資料庫是資料處理的有力工具,教程詳細介紹了使用ADO連線ACCD和Excel的方法和示例操作,第一版教程的修訂內容主要是完成所有程式檔案的32位和64位Office系統測試。
這套教程由兩卷,84個講座組成,修訂後的教程內容將在以後介紹給大家。 今天的內容是:VBA資料庫解決方案第7講:如何使用RecordSet物件開啟資料庫的資料記錄集。
分享成果,歡欣鼓舞正能量】不要把別人對你的好意視為理所當然。僅僅因為別人不需要你感謝,並不意味著你不需要感恩。
第7講 如何使用記錄集物件開啟資料庫的資料記錄集。
在上一講中,我們討論了 RecordSet 物件的一些屬性、方法和事件。 今天我們就繼續講解記錄集物件的相關知識,如何使用記錄集物件開啟資料庫中資料記錄的集合。
在講解之前,我們還要補充一些必要的知識點:
1RecordSet 物件。
1.1 記錄集物件可以支援兩種型別的更新。
立即更新,一旦呼叫 update 方法,所有更改都會立即寫入資料庫。
批量更新時,提供程式會快取多個更改,然後使用 updatebatch 方法將這些更改傳播到資料庫。
1.2 此外,在訪問記錄時,ADO 定義了 4 種不同型別的游標(指標)。
動態游標 :允許您檢視其他使用者所做的新增、更改和刪除。
鍵集游標:與動態游標類似,不同之處在於您看不到其他使用者新增的內容,並且它阻止您訪問其他使用者刪除的記錄。 其他使用者所做的資料更改仍然可見。
靜態游標:提供可用於查詢資料或生成報告的記錄集的靜態副本。 此外,其他使用者所做的新增、更改和刪除將是不可見的。 當您開啟客戶端記錄集物件時,這是唯一允許的游標型別。
僅前進游標:行為類似於靜態游標,只允許在記錄中向前滾動。 當需要在記錄集中進行單向移動時,這將提高效能。
1.3. 為什麼要設計這四種游標型別?
這是建立資料庫的良好用意,這四種型別是不同型別的客戶對資料庫的訪問,或者不同的許可權,有的是完全擁有的訪問許可權,任何訪問許可權都可以享受,有的只有部分許可權,這取決於使用者的性質來決定你享有的許可權。 當然,這和VBA的關係不是很緊密,但是說到資料庫,我就順便和大家聊聊。
2 ADO的三個物件之間的互連。
2.1 命令物件和記錄集物件取決於連線物件
2.2Command 物件可以結合 SQL 命令替換 RecordSet 物件,但它遠不如 RecordSet 物件靈活和實用
2.3RecordSet 物件,只能在資料表中實現記錄集操作。 記錄集:對錶執行查詢操作時返回的特定記錄集。
3. 開啟記錄集。
必須明確的是,在開啟記錄集之前,需要連線資料庫,連線請參考前面的講座
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
在開啟記錄集之前,需要宣告乙個記錄集物件並建立乙個記錄集物件。
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
全部**:省略。
*截圖:
*釋義:rszysopen "員工表"、cnado、1、3 或以上**是開啟記錄集,。
msgbox rszys.彈出“RecordCount”對話方塊,提示工作人員數量。
rszys.close
cnado.close
關閉上面的記錄集和資料庫之間的連線,注意應先關閉記錄集,然後關閉連線,開啟順序顛倒。
set rszys = nothing
set cnado = nothing
上面的 ** 釋放記憶體,執行後會彈出記錄數:(資料庫中的記錄數)。
本節的內容就是我們開始進入資料庫的內部操作了,大家應該不要著急,而是慢慢來,我對資料庫的講解是一步一步來的。
返回今天的內容:
1 記錄集物件可以通過多少種方式進行更新?
2 記錄集物件 如何開啟記錄集?
本講座由程式檔案介紹:VBA 和資料庫操作(第 1 卷)。xlsm
我 20 多年的 VBA 實踐經驗濃縮在以下教程中: