AddNew 方法 (ADO)

适用于:Access 2013、Office 2013

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

语法

recordset AddNew FieldList,Values

参数

参数 说明
recordset Recordset 对象。
FieldList 可选。 单个名称,或新记录中字段名称或序号位置的数组。
可选。 单个值,或新记录中字段值的数组。 如果 Fieldlist 为数组,则 Values 也必须是具有相同成员数的数组,否则将发生错误。 在每个数组中,字段名称的次序必须与字段值的次序匹配。

备注

AddNew 方法用于创建和初始化新记录。 可以结合使用 Supports 方法和 adAddNewCursorOptionEnum 值),以检验能否在当前 Recordset 对象中添加记录。

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

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

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

即时更新模式下(在该模式下,只要调用 Update 方法,提供程序便将更改写入基础数据源),不采用参数调用 AddNew 参数会将 EditMode 属性设置为 adEditAddEditModeEnum 值)。 提供程序将任意字段值更改缓存在本地。 调用 Update 方法会将新记录发布到数据库并将 EditMode 属性重置为 adEditNoneEditModeEnum 值)。 如果传递 FieldlistValues 参数,则 ADO 立即将新记录发布到数据库(无需调用 Update),且 EditMode 属性值不变 (adEditNone)。

批处理更新模式 (,其中提供程序缓存多个更改,并仅在调用 UpdateBatch 方法) 时将其写入基础数据源,调用不带参数的 AddNew 方法会将 EditMode 属性设置为 adEditAdd。 提供程序在本地缓存所有字段值的更改。 调用 Update 方法会将新记录添加到当前 Recordset 并将 EditMode 属性重新设置为 adEditNone,但是在调用 UpdateBatch 方法之前,提供程序不会将更改张贴到基础数据库中。 如果传递 FieldlistValues 参数,ADO 会将新记录发送到提供程序以便在缓存中存储;需要调用 UpdateBatch 方法才能将新记录发布到基础数据库。