RecordStatus and DefaultCursorDriver Properties Example
This example uses the RecordStatus and DefaultCursorDriver properties to show how changes to a local Recordset are tracked during batch updating. The RecordStatusOutput function is required for this procedure to run.
Sub RecordStatusX()
    Dim wrkMain As Workspace
    Dim conMain As Connection
    Dim rstTemp As Recordset
    Set wrkMain = CreateWorkspace("ODBCWorkspace", _
        "admin", "", dbUseODBC)
    ' This DefaultCursorDriver setting is required for
    ' batch updating.
    wrkMain.DefaultCursorDriver = dbUseClientBatchCursor
    Set conMain = wrkMain.OpenConnection("Publishers", _
        dbDriverNoPrompt, False, _
        "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
    ' The following locking argument is required for
    ' batch updating.
    Set rstTemp = conMain.OpenRecordset( _
        "SELECT * FROM authors", dbOpenDynaset, 0, _
        dbOptimisticBatch)
    With rstTemp
        .MoveFirst
        Debug.Print "Original record: " & !au_lname
        Debug.Print , RecordStatusOutput2(.RecordStatus)
        .Edit
        !au_lname = "Bowen"
        .Update
        Debug.Print "Edited record: " & !au_lname
        Debug.Print , RecordStatusOutput2(.RecordStatus)
        .AddNew
        !au_lname = "NewName"
        .Update
        Debug.Print "New record: " & !au_lname
        Debug.Print , RecordStatusOutput2(.RecordStatus)
        .Delete
        Debug.Print "Deleted record: " & !au_lname
        Debug.Print , RecordStatusOutput2(.RecordStatus)
        ' Close the local recordset without updating the
        ' data on the server.
        .Close
    End With
    conMain.Close
    wrkMain.Close
End Sub
Function RecordStatusOutput(lngTemp As Long) As String
    Dim strTemp As String
    strTemp = ""
    ' Construct an output string based on the RecordStatus
    ' value.
If lngTemp = dbRecordUnmodified Then _
        strTemp = "[dbRecordUnmodified]"
    If lngTemp = dbRecordModified Then _
        strTemp = "[dbRecordModified]"
    If lngTemp = dbRecordNew Then _
        strTemp = "[dbRecordNew]"
    If lngTemp = dbRecordDeleted Then _
        strTemp = "[dbRecordDeleted]"
    If lngTemp = dbRecordDBDeleted Then _
        strTemp = "[dbRecordDBDeleted]"
    RecordStatusOutput = strTemp
End Function