Recordset2.RecordStatus 属性 (DAO)
适用于:Access 2013、Office 2013
语法
表达式 。RecordStatus
表达 一个代表 Recordset2 对象的变量。
备注
RecordStatus 属性的值指示在下一次乐观批更新中是否包含当前记录以及如何包含当前记录。
当用户更改记录时,该记录的 RecordStatus 自动更改为 dbRecordModified。 同样,如果添加或删除记录, RecordStatus 会反映相应的常量。 如果您之后使用批处理模式的 Update 方法,DAO 将根据每条记录的 RecordStatus 属性,向远程服务器提交针对每条记录的相应操作。
示例
以下示例使用 RecordStatus 和 DefaultCursorDriver 属性演示如何在批更新中跟踪对本地 Recordset 的更改。 若要使该过程运行,需要使用 RecordStatusOutput 函数。
Sub RecordStatusX()
Dim wrkMain As Workspace
Dim conMain As Connection
Dim rstTemp As Recordset2
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