創(chuàng)建可更新 Recordset 對象的新記錄。
語法
recordset.AddNew FieldList, Values
參數(shù)
FieldList 可選。新記錄中字段的單個名稱、一組名稱或序號位置。
Values 可選。新記錄中字段的單個或一組值。如果 Fields 是數(shù)組,那么 Values 也必須是有相同成員數(shù)的數(shù)組,否則將發(fā)生錯誤。字段名稱的次序必須與每個數(shù)組中的字段值的次序相匹配。
說明
使用 AddNew 方法創(chuàng)建和初始化新記錄。通過 adAddNew 使用 Supports 方法可驗證是否能夠?qū)⒂涗浱砑拥疆斍暗?Recordset 對象。
在調(diào)用 AddNew 方法后,新記錄將成為當前記錄,并在調(diào)用 Update 方法后繼續(xù)保持為當前記錄。如果 Recordset 對象不支持書簽,當移動到其他記錄時將無法對新記錄進行訪問。是否需要調(diào)用 Requery 方法訪問新記錄則取決于所使用的游標類型。
如果在編輯當前記錄或添加新記錄時調(diào)用 AddNew,ADO 將調(diào)用 Update 方法保存任何更改并創(chuàng)建新記錄。
AddNew 方法的行為取決于 Recordset 對象的更新模式以及是否傳送 Fields 和 Values 參數(shù)。
在立即更新模式(調(diào)用 Update 方法時提供者會立即將更改寫入基本數(shù)據(jù)源)下,調(diào)用不帶參數(shù)的 AddNew 方法可將 EditMode 屬性設置為 adEditAdd。提供者將任何字段值的更改緩存在本地。調(diào)用 Update 方法可將新記錄傳遞到數(shù)據(jù)庫并將 EditMode 屬性重置為 adEditNone。如果傳送了 Fields 和 Values 參數(shù),ADO 則立即將新記錄傳遞到數(shù)據(jù)庫(無須調(diào)用 Update),且 EditMode 屬性值沒有改變 (adEditNone)。
在批更新模式(提供者緩存多個更改并只在調(diào)用 UpdateBatch 時將其寫入基本數(shù)據(jù)源)下,調(diào)用不帶參數(shù)的 AddNew 方法可將 EditMode 屬性設置為 adEditAdd。提供者將任何字段值的更改緩存在本地。調(diào)用 Update 方法可將新的記錄添加到當前記錄集并將 EditMode 屬性重置為 adEditNone,但在調(diào)用 UpdateBatch 方法之前提供者不將更改傳遞到基本數(shù)據(jù)庫。如果傳送 Fields 和 Values 參數(shù),ADO 則將新記錄發(fā)送給提供者以便緩存;需要調(diào)用 UpdateBatch 方法將新記錄傳遞到基本數(shù)據(jù)庫。
如果 Unique Table 動態(tài)屬性被設置,并且 Recordset 是對多個表執(zhí)行 JOIN 操作的結(jié)果,那么,AddNew 方法只能將字段插入到由 Unique Table 屬性所命名的表中。