注册 登录
Office中国论坛/Access中国论坛 返回首页

todaynew的个人空间 http://www.office-cn.net/?144436 [收藏] [复制] [分享] [RSS]

日志

AddNew 方法

已有 1085 次阅读2009-2-12 20:30 |个人分类:资料

AddNew 方法

创建可更新的 Recordset 对象的新记录。

语法
recordset.AddNew FieldList, Values
参数
recordset
Recordset 对象。
FieldList
可选。新记录中字段的单个名称、名称数组或序号位置数组。
Values
可选。新记录中字段的单个值或值的数组。如果 Fieldlist 是数组,那么 Values 也必须是具有相同数目的成员的数组,否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。
说明
使用 AddNew 方法创建并初始化新记录。使用带 adAddNew(CursorOptionEnum 值)的 Supports 方法验证是否能够将记录添加到当前的 Recordset 对象。

在调用 AddNew 方法后,新记录将成为当前记录,并在调用 Update 方法后仍保持为当前记录。由于新记录是追加到 Recordset 中的,因此 Update 之后调用 MoveNext 将移过 Recordset 的结尾,从而使 EOF 为 True。如果 Recordset 对象不支持书签,那么一旦移至其他记录则无法访问此新记录。根据游标类型,可能需要调用 Requery 方法以访问新记录。

如果在编辑当前记录或添加新记录时调用 AddNew,ADO 将调用 Update 方法以保存更改,然后创建新记录。

AddNew 方法的行为取决于 Recordset 对象的更新模式以及是否传送 Fieldlist 和 Values 参数。

在“立即更新模式”下(在这种模式下,一旦调用 Update 方法,提供者将把更改写入基本数据源),调用不带参数的 AddNew 方法将 EditMode 属性设置为 adEditAdd(EditModeEnum 值)。提供者在本地缓存任何字段值的更改。调用 Update 方法可将新记录传递到数据库并将 EditMode 属性重置为 adEditNone(EditModeEnum 值)。如果传送 Fieldlist 和 Values 参数,ADO 将立即把新记录传递到数据库(无须调用 Update);而 EditMode 属性值没有改变 (adEditNone)。

在“批更新模式”下(在这种模式下,提供者缓存多个更改并只在调用 UpdateBatch 方法时将其写入基本数据源),调用不带参数的 AddNew 方法将 EditMode 属性设置为 adEditAdd。提供者在本地缓存任何字段值的更改。调用 Update 方法可将新记录添加到当前 Recordset 并将 EditMode 属性重置为 adEditNone,但在调用 UpdateBatch 方法之前,提供者不会将更改传递到基本数据库。如果传送 Fieldlist 和 Values 参数,ADO 将把新记录发送给提供者以便存储在缓存中;需要调用 UpdateBatch 方法将新记录传递到基本数据库。



Update 方法
保存对 Recordset 对象的当前行或者 Record 对象的 Fields 集合所做的更改。

语法
recordset.Update Fields, Values
record.Fields.Update
参数
Fields
可选。Variant 或 Variant 数组,Variant 表示单个名称,Variant 数组则表示要修改的字段的名称或序号位置。
Values
可选。Variant 或 Variant 数组,Variant 表示单个值,Variant 数组表示新记录中字段的值。
说明
Recordset

用 Update 方法保存对 Recordset 对象的当前记录所做的全部更改,这些更改是在调用 AddNew 方法或在更改现有记录中的任一字段值之后进行的。Recordset 对象必须支持更新。

若要设置字段值,请执行下列操作之一:

给 Field 对象的 Value 属性指定值并调用 Update 方法。
通过调用 Update 将字段名和值作为参数传递。
通过调用 Update 传递字段名称数组和值数组。
如果使用字段和值的数组,那么两个数组中必须有相同数量的元素。此外,字段名称的顺序必须与字段值的顺序匹配。如果字段数目和顺序与值不匹配,将产生错误。

如果 Recordset 对象支持批更新,在调用 UpdateBatch 方法之前,可以把对一个或多个记录所做的多个更改在本地缓存。如果调用 UpdateBatch 方法时正在编辑当前记录或添加新记录,那么在将批更改传送到提供者之前,ADO 将自动调用 Update 方法保存对当前记录所做的所有挂起的更改。

如果调用 Update 方法前在正在添加或编辑的记录中移动,ADO 将自动调用 Update 保存更改。如果要取消对当前记录所做的任何更改或放弃新添加的记录,必须调用 CancelUpdate 方法。

调用 Update 方法后,当前记录仍然保持当前。

Record

Update 方法最终完成对 Record 对象 Fields 集合中字段的添加、删除和更新。

例如,用 Delete 方法删除的字段将立即被标记为删除,但仍保留在集合中。必须调用 Update 方法将这些字段从提供者的集合中真正删除。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-13 17:17 , Processed in 0.049486 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部