Access學(xué)習(xí)-Recordset對(duì)象

Recordset 對(duì)象 (DAO)
表示基表中的記錄或運(yùn)行查詢所生成的記錄。
使用?Recordset?對(duì)象在記錄級(jí)別處理數(shù)據(jù)庫中的數(shù)據(jù)。使用 DAO 對(duì)象時(shí),幾乎可以完全使用?Recordset?對(duì)象處理數(shù)據(jù)。所有?Recordset?對(duì)象都是使用記錄(行)和字段(列)構(gòu)建的。共有五種類型的?Recordset?對(duì)象:
表類型 Recordset - 基表在代碼中的表示形式,可用于在單個(gè)數(shù)據(jù)庫表中添加、更改或刪除記錄(僅適用于 Microsoft Access 工作區(qū))。
動(dòng)態(tài)集類型 Recordset - 其中可以包含可更新記錄的查詢結(jié)果。動(dòng)態(tài)集類型 Recordset 對(duì)象是一個(gè)動(dòng)態(tài)的記錄集,可用于在一個(gè)或多個(gè)基礎(chǔ)數(shù)據(jù)庫表中添加、更改或刪除記錄。動(dòng)態(tài)集類型 Recordset 對(duì)象可以包含數(shù)據(jù)庫中的一個(gè)或多個(gè)表中的字段。此類型對(duì)應(yīng)于 ODBC 鍵集游標(biāo)。
快照類型 Recordset - 一組記錄的靜態(tài)副本,可用于查找數(shù)據(jù)或生成報(bào)表??煺疹愋?Recordset 對(duì)象可以包含數(shù)據(jù)庫中的一個(gè)或多個(gè)表中的字段,但不能進(jìn)行更新。此類型對(duì)應(yīng)于 ODBC 靜態(tài)游標(biāo)。
僅向前類型 Recordset - 除不提供游標(biāo)外,其他均與快照類型相同。只能在記錄中向前滾動(dòng)。如果只需遍歷結(jié)果集一次,這種類型可提高性能。此類型對(duì)應(yīng)于 ODBC 僅向前游標(biāo)。
動(dòng)態(tài)類型 Recordset - 一個(gè)或多個(gè)基表中的查詢結(jié)果集,可以在該基表中添加、更改或刪除行返回查詢產(chǎn)生的記錄。此外,其他用戶在基表中添加、刪除或編輯的記錄也出現(xiàn)在 Recordset 中。此類型對(duì)應(yīng)于 ODBC 動(dòng)態(tài)游標(biāo)(僅適用于 ODBCDirect 工作區(qū))。
可以使用 OpenRecordset 方法的 type 參數(shù)選擇要?jiǎng)?chuàng)建的 Recordset 對(duì)象的類型。
在創(chuàng)建 Recordset 對(duì)象時(shí),如果存在任何記錄的話,當(dāng)前記錄將定位到第一條記錄。如果不存在任何記錄, RecordCount 屬性設(shè)置為 0,并且 BOF 和 EOF 屬性設(shè)置為 True。
可以使用 MoveNext、MovePrevious、MoveFirst 和 MoveLast 方法來將重新定位當(dāng)前記錄。 僅向前類型 Recordset 對(duì)象只支持 MoveNext 方法。 在使用 Move 方法訪問每條記錄(或"遍歷" Recordset)時(shí),可以使用 BOF 和 EOF 屬性檢查 Recordset 對(duì)象的開頭或結(jié)尾。
若要按照序號(hào)或 Name 屬性設(shè)置來引用集合中的 Recordset 對(duì)象,可以使用下列任何一種語法形式:
Recordsets(0)
Recordsets("name")
Recordsets![name]
屬性(DAO)
AbsolutePosition 屬性:設(shè)置或返回 Recordset 對(duì)象的當(dāng)前記錄的相對(duì)記錄編號(hào)。
BatchCollisionCount 屬性:該屬性指示在上次批更新嘗試過程中發(fā)生沖突或未能更新的記錄數(shù)。該屬性的值對(duì)應(yīng)于 BatchCollisions 屬性中的書簽數(shù)。
BatchCollisions 屬性:該屬性包含一個(gè)書簽數(shù)組,用于指示上次嘗試的批 Update 調(diào)用中遇到?jīng)_突的行。 BatchCollisionCount 屬性指示該數(shù)組中的元素?cái)?shù)。
BatchSize 屬性:BatchSize 屬性確定在批更新中將語句發(fā)送到服務(wù)器時(shí)使用的批大小。該屬性的值決定了在一個(gè)命令緩沖中發(fā)送到服務(wù)器的語句數(shù)。
BOF屬性:返回一個(gè)值,該值指示當(dāng)前記錄的位置是否在 Recordset 對(duì)象中的第一條記錄之前。 只讀 Boolean 類型。
可以使用 BOF 和 EOF 屬性確定 Recordset 對(duì)象是否包含記錄,或確定在從一條記錄移動(dòng)到另一條記錄時(shí)是否超出了 Recordset 對(duì)象的限制。
當(dāng)前記錄指針的位置決定了 BOF 和 EOF 返回值。
如果 BOF 或 EOF 屬性為 True,則沒有當(dāng)前記錄。
Bookmark 屬性:設(shè)置或返回唯一標(biāo)識(shí) Recordset 對(duì)象中的當(dāng)前記錄的一個(gè)書簽。
Bookmarkable 屬性:返回一個(gè)值,該值表示 Recordset 對(duì)象是否支持書簽
CacheSize 屬性:設(shè)置或返回從 ODBC 數(shù)據(jù)源中檢索的、需要本地緩存的記錄數(shù)。 可讀/寫 Long 類型。
CacheStart 屬性:設(shè)置或返回一個(gè)值,該值指定動(dòng)態(tài)集類型 Recordset 對(duì)象(包含從 ODBC 數(shù)據(jù)源本地緩存的數(shù)據(jù))中的第一條記錄的書簽(僅適用于 Microsoft Access 工作區(qū))。
Connection 屬性:返回對(duì)應(yīng)于數(shù)據(jù)庫的 Connection 對(duì)象。
DateCreated 屬性:返回基表的創(chuàng)建日期和時(shí)間(僅適用于 Microsoft Access 工作區(qū))。 只讀 Variant 類型。
EditMode 屬性:返回一個(gè)值,該值指示當(dāng)前記錄的編輯狀態(tài)。
EOF 屬性:返回一個(gè)值,該值指示當(dāng)前記錄位置是否位于 Recordset 對(duì)象的最后一條記錄之后。 只讀 Boolean。
Fields屬性:返回一個(gè) Fields 集合,該集合表示指定對(duì)象的所有存儲(chǔ) Field 對(duì)象。 此為只讀屬性。
Filter 屬性:設(shè)置或返回一個(gè)值,該值確定在隨后打開的 Recordset 對(duì)象中包括的記錄(僅適用于 Microsoft Access 工作區(qū))。?
Index 屬性:設(shè)置或返回指示表類型 Recordset 對(duì)象中當(dāng)前 Index 對(duì)象名稱的一個(gè)值
LastModified 屬性:返回一個(gè)書簽, 該書簽指示最近添加或更改的記錄。
LastUpdated 屬性:返回基表的最近更改日期和時(shí)間。 只讀 Variant 類型。
LockEdits 屬性:設(shè)置或返回一個(gè)值,該值指示編輯時(shí)生效的鎖定的類型。
Name 屬性:返回指定對(duì)象的名稱。 只讀的 字符串 。
NoMatch 屬性:指示特定記錄是通過使用 Seek 方法還是 Find 方法找到的(僅適用于 Microsoft Access 工作區(qū))。
打開或創(chuàng)建 Recordset 對(duì)象時(shí),其 NoMatch 屬性設(shè)置為 False。
若要定位記錄,請(qǐng)對(duì)表類型的 Recordset 對(duì)象使用 Seek 方法,或者對(duì)動(dòng)態(tài)集類型或快照類型的 Recordset 對(duì)象使用 Find 方法之一。檢查 NoMatch 屬性設(shè)置以查看是否找到了該記錄。
如果 Seek 或 Find 方法不成功,且 NoMatch 屬性為 True,則當(dāng)前記錄將不再有效。如果需要返回到當(dāng)前記錄,請(qǐng)?jiān)谑褂?Seek 方法或 Find 方法之前獲取當(dāng)前記錄的書簽。
PercentPosition 屬性:設(shè)置或返回一個(gè)值, 該值基于recordset中記錄的百分比指示**recordset** 對(duì)象中當(dāng)前記錄的大概位置。
Properties 屬性:返回指定對(duì)象的 Properties 集合。 此為只讀屬性。
RecordCount 屬性:返回在 Recordset 對(duì)象中訪問的記錄數(shù),或者返回表類型 Recordset 對(duì)象或 TableDef 對(duì)象中的記錄總數(shù)。只讀 Long。
RecordStatus 屬性:指示在下一次樂觀批更新中是否包含當(dāng)前記錄以及如何包含當(dāng)前記錄。
Restartable屬性:返回一個(gè)值,該值表示 Recordset 對(duì)象是否支持 Requery 方法,該方法重新執(zhí)行 Recordset 對(duì)象所基于的查詢。
Sort 屬性:設(shè)置或返回 Recordset 對(duì)象中的記錄的排序順序
如果為某對(duì)象設(shè)置了該屬性,當(dāng)從該對(duì)象創(chuàng)建后續(xù) Recordset 對(duì)象時(shí)會(huì)進(jìn)行排序。 Sort 屬性設(shè)置重寫為 QueryDef 對(duì)象指定的任何排序次序。
StillExecuting 屬性:可以確定最近調(diào)用的異步 Execute 或 OpenConnection 方法(即用 dbRunAsync 選項(xiàng)執(zhí)行的方法)是否已完成。在 StillExecuting 屬性為 True 的情況下,不能訪問任何返回的對(duì)象。
Transactions 屬性:返回一個(gè)值,該值指示對(duì)象是否支持事務(wù)。 只讀 Boolean 類型。
Type 屬性:設(shè)置或返回一個(gè)值,該值指示對(duì)象的操作類型或數(shù)據(jù)類型。 只讀 Integer。

UpDatable屬性:該值指示是否可以更改 DAO 對(duì)象。 只讀 Boolean 類型。
UpdateOptions 屬性:控制指定的 Recordset 對(duì)象的任何批更新的各個(gè)方面。
ValidationRule 屬性:設(shè)置或返回一個(gè)值,當(dāng)字段中的數(shù)據(jù)更改或添加到表中時(shí),該值對(duì)這些數(shù)據(jù)進(jìn)行驗(yàn)證(僅適用于 Microsoft Access 工作區(qū))??勺x寫 String。
ValidationText 屬性:設(shè)置或返回一個(gè)值,該值指定在 Field 對(duì)象的值不滿足 ValidationRule 屬性設(shè)置所指定的驗(yàn)證規(guī)則時(shí)應(yīng)用程序顯示的消息文本(僅適用于 Microsoft Access 工作區(qū))。只讀 String。
RecordsetType 屬性:可以指定何種類型的記錄集可以在窗體中使用。 Byte 型,可讀寫。
方法(DAO)
AddNew 方法:為可更新的 Recordset 對(duì)象創(chuàng)建新記錄。
Cancel 方法:使用Cancel方法可以終止執(zhí)行異步Execute或OpenConnection方法調(diào)用 (即, 使用即用 dbrunasync 選項(xiàng)調(diào)用方法)。?
CancelUpdate 方法:取消 Recordset 對(duì)象的任何待定更新。
可以使用 CancelUpdate 方法取消執(zhí)行 Edit 或 AddNew 操作后得到的任何待定更新。例如,如果用戶調(diào)用了 Edit 或 AddNew 方法,但尚未調(diào)用 Update 方法, CancelUpdate 將取消 Edit 或 AddNew 被調(diào)用之后所做的任何更改。
Clone 方法:創(chuàng)建一個(gè)引用原始 Recordset 對(duì)象的重復(fù) Recordset 對(duì)象。使用 Clone 方法可以創(chuàng)建多個(gè)重復(fù)的 Recordset 對(duì)象。每個(gè) Recordset 都可以具有其自身的當(dāng)前記錄。使用 Clone 自身并不會(huì)更改對(duì)象中的數(shù)據(jù)或?qū)ο蠡A(chǔ)結(jié)構(gòu)中的數(shù)據(jù)。使用 Clone 方法時(shí),可以在兩個(gè)或更多個(gè) Recordset 對(duì)象之間共享書簽,因?yàn)檫@些對(duì)象的書簽是可以交換的。
Close 方法:關(guān)閉一個(gè)打開的Recordset。
CopyQueryDef 方法:返回一個(gè)**querydef** 對(duì)象, 該對(duì)象是用于創(chuàng)建 recordset 占位符表示的**recordset** 對(duì)象的querydef副本 (僅適用于 Microsoft Access 工作區(qū))。
Delete 方法:刪除對(duì)象
Edit 方法:將當(dāng)前記錄從可更新的 Recordset 對(duì)象復(fù)制到復(fù)制緩沖區(qū)以進(jìn)行后續(xù)編輯。
FillCache 方法:為某個(gè) Recordset 對(duì)象填充所有或一部分本地緩存,該對(duì)象包含來自 Microsoft Access 數(shù)據(jù)庫引擎連接的 ODBC 數(shù)據(jù)源中的數(shù)據(jù)(僅適用于 Microsoft Access 數(shù)據(jù)庫引擎連接的 ODBC 數(shù)據(jù)庫)。
FindFirst 方法:在動(dòng)態(tài)集類型或快照類型的 Recordset 對(duì)象中查找符合指定條件的第一條記錄,并使該記錄成為當(dāng)前記錄(僅適用于 Microsoft Access 工作區(qū))。
FindLast 方法:在動(dòng)態(tài)集類型或快照類型的 Recordset 對(duì)象中查找符合指定條件的最后一條記錄,并且使該記錄成為當(dāng)前記錄(僅適用于 Microsoft Access 工作區(qū))。
FindNext 方法:在動(dòng)態(tài)集類型或快照類型的 Recordset 對(duì)象中查找符合指定條件的下一條記錄,并且使該記錄成為當(dāng)前記錄(僅適用于 Microsoft Access 工作區(qū))。
FindPrevious 方法 :在動(dòng)態(tài)集類型或快照類型的 Recordset 對(duì)象中查找符合指定條件的上一條記錄,并且使該記錄成為當(dāng)前記錄(僅適用于 Microsoft Access 工作區(qū))。
GetRows 方法:使用 GetRows 方法從 Recordset 復(fù)制記錄。 GetRows 返回二維數(shù)組。 第一個(gè)下標(biāo)標(biāo)識(shí)字段,第二個(gè)下標(biāo)標(biāo)識(shí)行號(hào)。
Move 方法:移動(dòng) Recordset 對(duì)象中當(dāng)前記錄的位置。
如果使用 Move 將當(dāng)前記錄指針定位在第一條記錄之前,當(dāng)前記錄指針將移到文件的開頭。如果 Recordset 不包含記錄,并且它的 BOF 屬性為 True,則使用此方法后移會(huì)導(dǎo)致錯(cuò)誤。
如果使用 Move 將當(dāng)前記錄指針定位在最后一條記錄之后,當(dāng)前記錄指針將移到文件的末尾。如果 Recordset 不包含記錄,并且它的 EOF 屬性為 True,則使用此方法前移會(huì)導(dǎo)致錯(cuò)誤。
如果 BOF 和 EOF 屬性中的一個(gè)為 True,并且您試圖在不使用有效書簽的情況下使用 Move 方法,將會(huì)發(fā)生運(yùn)行時(shí)錯(cuò)誤。
MoveFirst 方法 :移動(dòng)至指定的 Recordset 對(duì)象中的第一條記錄,然后將該記錄作為當(dāng)前記錄。
MoveLast 方法:移到指定的 Recordset 對(duì)象中的最后一條記錄,并使該記錄成為當(dāng)前記錄。
MoveNext 方法:移動(dòng)至指定 Recordset 對(duì)象中下一條記錄,然后將該記錄作為當(dāng)前記錄。
NextRecordset 方法:下個(gè)記錄集是否可用,在 ODBCDirect 工作區(qū)中, 可以在OpenRecordset的 source 參數(shù)中打開包含多個(gè) select 查詢的**Recordset** , 或選擇查詢**QueryDef** 對(duì)象的**SQL** 屬性。
將使用第一個(gè)查詢打開返回的 Recordset。若要從后續(xù)查詢獲取記錄的結(jié)果集,請(qǐng)使用 NextRecordset 方法。
OpenRecordset 方法:創(chuàng)建一個(gè)新的 Recordset 對(duì)象,并將其追加到 Recordsets 集合。
Requery 方法:通過重新執(zhí)行 Recordset 對(duì)象所基于的查詢來更新該對(duì)象中的數(shù)據(jù)。
Seek 方法:在已建立索引的表類型 Recordset 對(duì)象中查找符合當(dāng)前索引的指定條件的記錄,并使該記錄成為當(dāng)前記錄(僅適用于 Microsoft Access 工作區(qū))。
Update 方法:使用 Update 可保存當(dāng)前記錄以及對(duì)它所做的任何更改。
圖片和內(nèi)容來自互聯(lián)網(wǎng),如有相關(guān)Access或VBA的問題咨詢,可私信或訪問我的同名微博。
Access學(xué)習(xí)-Recordset對(duì)象的評(píng)論 (共 條)
