DAO Object
 
NOTE: ODBCDirect workspaces are not supported in Microsoft Access 2013. Use ADO if you want to access external data sources without using the Microsoft Access database engine.
 
Returns a value indicating the update status of the current record if it is part of a batch update (ODBCDirect workspaces only). Read-only RecordStatusEnum.
 

Syntax

expression .RecordStatus
expression A variable that represents a Recordset object.
 

Remarks

The value of the RecordStatus property indicates whether and how the current record will be involved in the next optimistic batch update.
 
When a user changes a record, the RecordStatus for that record automatically changes to dbRecordModified. Similarly, if a record is added or deleted, RecordStatus reflects the appropriate constant. When you then use a batch-mode Update method, DAO will submit an appropriate operation to the remote server for each record, based on the record's RecordStatus property.
 

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
 
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=pubs;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