Access学习-Recordset对象

Recordset 对象 (DAO)
表示基表中的记录或运行查询所生成的记录。
使用 Recordset 对象在记录级别处理数据库中的数据。使用 DAO 对象时,几乎可以完全使用 Recordset 对象处理数据。所有 Recordset 对象都是使用记录(行)和字段(列)构建的。共有五种类型的 Recordset 对象:
表类型 Recordset - 基表在代码中的表示形式,可用于在单个数据库表中添加、更改或删除记录(仅适用于 Microsoft Access 工作区)。
动态集类型 Recordset - 其中可以包含可更新记录的查询结果。动态集类型 Recordset 对象是一个动态的记录集,可用于在一个或多个基础数据库表中添加、更改或删除记录。动态集类型 Recordset 对象可以包含数据库中的一个或多个表中的字段。此类型对应于 ODBC 键集游标。
快照类型 Recordset - 一组记录的静态副本,可用于查找数据或生成报表。快照类型 Recordset 对象可以包含数据库中的一个或多个表中的字段,但不能进行更新。此类型对应于 ODBC 静态游标。
仅向前类型 Recordset - 除不提供游标外,其他均与快照类型相同。只能在记录中向前滚动。如果只需遍历结果集一次,这种类型可提高性能。此类型对应于 ODBC 仅向前游标。
动态类型 Recordset - 一个或多个基表中的查询结果集,可以在该基表中添加、更改或删除行返回查询产生的记录。此外,其他用户在基表中添加、删除或编辑的记录也出现在 Recordset 中。此类型对应于 ODBC 动态游标(仅适用于 ODBCDirect 工作区)。
可以使用 OpenRecordset 方法的 type 参数选择要创建的 Recordset 对象的类型。
在创建 Recordset 对象时,如果存在任何记录的话,当前记录将定位到第一条记录。如果不存在任何记录, RecordCount 属性设置为 0,并且 BOF 和 EOF 属性设置为 True。
可以使用 MoveNext、MovePrevious、MoveFirst 和 MoveLast 方法来将重新定位当前记录。 仅向前类型 Recordset 对象只支持 MoveNext 方法。 在使用 Move 方法访问每条记录(或"遍历" Recordset)时,可以使用 BOF 和 EOF 属性检查 Recordset 对象的开头或结尾。
若要按照序号或 Name 属性设置来引用集合中的 Recordset 对象,可以使用下列任何一种语法形式:
Recordsets(0)
Recordsets("name")
Recordsets![name]
属性(DAO)
AbsolutePosition 属性:设置或返回 Recordset 对象的当前记录的相对记录编号。
BatchCollisionCount 属性:该属性指示在上次批更新尝试过程中发生冲突或未能更新的记录数。该属性的值对应于 BatchCollisions 属性中的书签数。
BatchCollisions 属性:该属性包含一个书签数组,用于指示上次尝试的批 Update 调用中遇到冲突的行。 BatchCollisionCount 属性指示该数组中的元素数。
BatchSize 属性:BatchSize 属性确定在批更新中将语句发送到服务器时使用的批大小。该属性的值决定了在一个命令缓冲中发送到服务器的语句数。
BOF属性:返回一个值,该值指示当前记录的位置是否在 Recordset 对象中的第一条记录之前。 只读 Boolean 类型。
可以使用 BOF 和 EOF 属性确定 Recordset 对象是否包含记录,或确定在从一条记录移动到另一条记录时是否超出了 Recordset 对象的限制。
当前记录指针的位置决定了 BOF 和 EOF 返回值。
如果 BOF 或 EOF 属性为 True,则没有当前记录。
Bookmark 属性:设置或返回唯一标识 Recordset 对象中的当前记录的一个书签。
Bookmarkable 属性:返回一个值,该值表示 Recordset 对象是否支持书签
CacheSize 属性:设置或返回从 ODBC 数据源中检索的、需要本地缓存的记录数。 可读/写 Long 类型。
CacheStart 属性:设置或返回一个值,该值指定动态集类型 Recordset 对象(包含从 ODBC 数据源本地缓存的数据)中的第一条记录的书签(仅适用于 Microsoft Access 工作区)。
Connection 属性:返回对应于数据库的 Connection 对象。
DateCreated 属性:返回基表的创建日期和时间(仅适用于 Microsoft Access 工作区)。 只读 Variant 类型。
EditMode 属性:返回一个值,该值指示当前记录的编辑状态。
EOF 属性:返回一个值,该值指示当前记录位置是否位于 Recordset 对象的最后一条记录之后。 只读 Boolean。
Fields属性:返回一个 Fields 集合,该集合表示指定对象的所有存储 Field 对象。 此为只读属性。
Filter 属性:设置或返回一个值,该值确定在随后打开的 Recordset 对象中包括的记录(仅适用于 Microsoft Access 工作区)。
Index 属性:设置或返回指示表类型 Recordset 对象中当前 Index 对象名称的一个值
LastModified 属性:返回一个书签, 该书签指示最近添加或更改的记录。
LastUpdated 属性:返回基表的最近更改日期和时间。 只读 Variant 类型。
LockEdits 属性:设置或返回一个值,该值指示编辑时生效的锁定的类型。
Name 属性:返回指定对象的名称。 只读的 字符串 。
NoMatch 属性:指示特定记录是通过使用 Seek 方法还是 Find 方法找到的(仅适用于 Microsoft Access 工作区)。
打开或创建 Recordset 对象时,其 NoMatch 属性设置为 False。
若要定位记录,请对表类型的 Recordset 对象使用 Seek 方法,或者对动态集类型或快照类型的 Recordset 对象使用 Find 方法之一。检查 NoMatch 属性设置以查看是否找到了该记录。
如果 Seek 或 Find 方法不成功,且 NoMatch 属性为 True,则当前记录将不再有效。如果需要返回到当前记录,请在使用 Seek 方法或 Find 方法之前获取当前记录的书签。
PercentPosition 属性:设置或返回一个值, 该值基于recordset中记录的百分比指示**recordset** 对象中当前记录的大概位置。
Properties 属性:返回指定对象的 Properties 集合。 此为只读属性。
RecordCount 属性:返回在 Recordset 对象中访问的记录数,或者返回表类型 Recordset 对象或 TableDef 对象中的记录总数。只读 Long。
RecordStatus 属性:指示在下一次乐观批更新中是否包含当前记录以及如何包含当前记录。
Restartable属性:返回一个值,该值表示 Recordset 对象是否支持 Requery 方法,该方法重新执行 Recordset 对象所基于的查询。
Sort 属性:设置或返回 Recordset 对象中的记录的排序顺序
如果为某对象设置了该属性,当从该对象创建后续 Recordset 对象时会进行排序。 Sort 属性设置重写为 QueryDef 对象指定的任何排序次序。
StillExecuting 属性:可以确定最近调用的异步 Execute 或 OpenConnection 方法(即用 dbRunAsync 选项执行的方法)是否已完成。在 StillExecuting 属性为 True 的情况下,不能访问任何返回的对象。
Transactions 属性:返回一个值,该值指示对象是否支持事务。 只读 Boolean 类型。
Type 属性:设置或返回一个值,该值指示对象的操作类型或数据类型。 只读 Integer。

UpDatable属性:该值指示是否可以更改 DAO 对象。 只读 Boolean 类型。
UpdateOptions 属性:控制指定的 Recordset 对象的任何批更新的各个方面。
ValidationRule 属性:设置或返回一个值,当字段中的数据更改或添加到表中时,该值对这些数据进行验证(仅适用于 Microsoft Access 工作区)。可读写 String。
ValidationText 属性:设置或返回一个值,该值指定在 Field 对象的值不满足 ValidationRule 属性设置所指定的验证规则时应用程序显示的消息文本(仅适用于 Microsoft Access 工作区)。只读 String。
RecordsetType 属性:可以指定何种类型的记录集可以在窗体中使用。 Byte 型,可读写。
方法(DAO)
AddNew 方法:为可更新的 Recordset 对象创建新记录。
Cancel 方法:使用Cancel方法可以终止执行异步Execute或OpenConnection方法调用 (即, 使用即用 dbrunasync 选项调用方法)。
CancelUpdate 方法:取消 Recordset 对象的任何待定更新。
可以使用 CancelUpdate 方法取消执行 Edit 或 AddNew 操作后得到的任何待定更新。例如,如果用户调用了 Edit 或 AddNew 方法,但尚未调用 Update 方法, CancelUpdate 将取消 Edit 或 AddNew 被调用之后所做的任何更改。
Clone 方法:创建一个引用原始 Recordset 对象的重复 Recordset 对象。使用 Clone 方法可以创建多个重复的 Recordset 对象。每个 Recordset 都可以具有其自身的当前记录。使用 Clone 自身并不会更改对象中的数据或对象基础结构中的数据。使用 Clone 方法时,可以在两个或更多个 Recordset 对象之间共享书签,因为这些对象的书签是可以交换的。
Close 方法:关闭一个打开的Recordset。
CopyQueryDef 方法:返回一个**querydef** 对象, 该对象是用于创建 recordset 占位符表示的**recordset** 对象的querydef副本 (仅适用于 Microsoft Access 工作区)。
Delete 方法:删除对象
Edit 方法:将当前记录从可更新的 Recordset 对象复制到复制缓冲区以进行后续编辑。
FillCache 方法:为某个 Recordset 对象填充所有或一部分本地缓存,该对象包含来自 Microsoft Access 数据库引擎连接的 ODBC 数据源中的数据(仅适用于 Microsoft Access 数据库引擎连接的 ODBC 数据库)。
FindFirst 方法:在动态集类型或快照类型的 Recordset 对象中查找符合指定条件的第一条记录,并使该记录成为当前记录(仅适用于 Microsoft Access 工作区)。
FindLast 方法:在动态集类型或快照类型的 Recordset 对象中查找符合指定条件的最后一条记录,并且使该记录成为当前记录(仅适用于 Microsoft Access 工作区)。
FindNext 方法:在动态集类型或快照类型的 Recordset 对象中查找符合指定条件的下一条记录,并且使该记录成为当前记录(仅适用于 Microsoft Access 工作区)。
FindPrevious 方法 :在动态集类型或快照类型的 Recordset 对象中查找符合指定条件的上一条记录,并且使该记录成为当前记录(仅适用于 Microsoft Access 工作区)。
GetRows 方法:使用 GetRows 方法从 Recordset 复制记录。 GetRows 返回二维数组。 第一个下标标识字段,第二个下标标识行号。
Move 方法:移动 Recordset 对象中当前记录的位置。
如果使用 Move 将当前记录指针定位在第一条记录之前,当前记录指针将移到文件的开头。如果 Recordset 不包含记录,并且它的 BOF 属性为 True,则使用此方法后移会导致错误。
如果使用 Move 将当前记录指针定位在最后一条记录之后,当前记录指针将移到文件的末尾。如果 Recordset 不包含记录,并且它的 EOF 属性为 True,则使用此方法前移会导致错误。
如果 BOF 和 EOF 属性中的一个为 True,并且您试图在不使用有效书签的情况下使用 Move 方法,将会发生运行时错误。
MoveFirst 方法 :移动至指定的 Recordset 对象中的第一条记录,然后将该记录作为当前记录。
MoveLast 方法:移到指定的 Recordset 对象中的最后一条记录,并使该记录成为当前记录。
MoveNext 方法:移动至指定 Recordset 对象中下一条记录,然后将该记录作为当前记录。
NextRecordset 方法:下个记录集是否可用,在 ODBCDirect 工作区中, 可以在OpenRecordset的 source 参数中打开包含多个 select 查询的**Recordset** , 或选择查询**QueryDef** 对象的**SQL** 属性。
将使用第一个查询打开返回的 Recordset。若要从后续查询获取记录的结果集,请使用 NextRecordset 方法。
OpenRecordset 方法:创建一个新的 Recordset 对象,并将其追加到 Recordsets 集合。
Requery 方法:通过重新执行 Recordset 对象所基于的查询来更新该对象中的数据。
Seek 方法:在已建立索引的表类型 Recordset 对象中查找符合当前索引的指定条件的记录,并使该记录成为当前记录(仅适用于 Microsoft Access 工作区)。
Update 方法:使用 Update 可保存当前记录以及对它所做的任何更改。
图片和内容来自互联网,如有相关Access或VBA的问题咨询,可私信或访问我的同名微博。