次のコードでは、LockType プロパティを adLockBatchOptimistic に設定し、CursorLocation を adUseClient に設定することで、Recordset をバッチ モードで開きます。 2 つの新しいレコードを追加し、既存のレコードのフィールドの値を変更して元の値を保存した後、UpdateBatch を呼び出して変更をデータ ソースに送り返します。
備考
'BeginBatchUpdate
strConn = "Provider=SQLOLEDB;Initial Catalog=Northwind;" & _
"Data Source=MySQLServer;Integrated Security=SSPI;"
strSQL = "SELECT ShipperId, CompanyName, Phone FROM Shippers"
Set objRs1 = New ADODB.Recordset
objRs1.CursorLocation = adUseClient
objRs1.Open strSQL, strConn, adOpenStatic, adLockBatchOptimistic, adCmdText
' Change value of Phone field for first record in Recordset, saving value
' for later restoration.
intId = objRs1("ShipperId")
sPhone = objRs1("Phone")
objRs1("Phone") = "(111) 555-1111"
'Add two new records
For i = 0 To 1
objRs1.AddNew
objRs1(1) = "New Shipper #" & CStr((i + 1))
objRs1(2) = "(nnn) 555-" & i & i & i & i
Next i
' Send the updates
objRs1.UpdateBatch
'EndBatchUpdate
UpdateBatch メソッドを呼び出すときに現在のレコードを編集する場合、または新しいレコードを追加する場合、ADO は自動的に Update メソッドを呼び出して、保留中の変更を現在のレコードに保存してから、バッチ処理された変更をプロバイダーに送信します。