该范例使用 Status 属性显示在批更新发生前有哪些记录已经在批操作中被修改。
Public Sub StatusX() Dim rstTitles As ADODB.Recordset
Dim strCnn As String ' 为批更新打开记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstTitles = New ADODB.Recordset
rstTitles.CursorType = adOpenKeyset
rstTitles.LockType = adLockBatchOptimistic
rstTitles.Open "titles", strCnn, , , adCmdTable ' 更改 psychology 标题的类型。
Do Until rstTitles.EOF
If Trim(rstTitles!Type) = "psychology" Then
rstTitles!Type = "self_help"
End If
rstTitles.MoveNext
Loop ' 显示标题 ID 和状态。
rstTitles.MoveFirst
Do Until rstTitles.EOF
If rstTitles.Status = adRecModified Then
Debug.Print rstTitles!title_id & " - Modified"
Else
Debug.Print rstTitles!title_id
End If
rstTitles.MoveNext
Loop ' 取消更新,因为这只是演示。
rstTitles.CancelBatch
rstTitles.CloseEnd Sub