AddNew 方法 (ADO)
适用于:Access 2013、Office 2013
用于为可更新的 Recordset 对象创建新记录。
语法
recordset。 AddNew FieldList,Values
参数
参数 | 说明 |
---|---|
recordset | Recordset 对象。 |
FieldList | 可选。 单个名称,或新记录中字段名称或序号位置的数组。 |
值 | 可选。 单个值,或新记录中字段值的数组。 如果 Fieldlist 为数组,则 Values 也必须是具有相同成员数的数组,否则将发生错误。 在每个数组中,字段名称的次序必须与字段值的次序匹配。 |
备注
AddNew 方法用于创建和初始化新记录。 可以结合使用 Supports 方法和 adAddNew ( CursorOptionEnum 值),以检验能否在当前 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 方法才能将新记录发布到基础数据库。