Método Recordset2.Edit (DAO)
Aplica-se ao: Access 2013, Office 2013
Copia o registro atual de um objeto Recordset atualizável para o buffer de cópia para edição subsequente.
Sintaxe
expressão .Edit
Expressão Uma variável que representa um objeto Recordset2 .
Comentários
Depois de usar o método Edit, as alterações feitas nos campos do registro atual são copiadas para o buffer de cópia. Após fazer as alterações desejadas no registro, use o método Update para salvar as alterações.
O registro atual permanece atual após o uso de Edit.
Observação
Se você editar um registro e, em seguida, executar qualquer operação que mova para outro registro, mas sem utilizar primeiro Update, suas alterações serão perdidas sem aviso. Além disso, se você fechar recordset ou encerrar o procedimento que declara o Recordset ou o objeto pai Database ou Connection, seu registro editado será descartado sem aviso.
Utilizar Edit produzirá um erro se:
Não houver nenhum registro.
O objeto Connection, Database ou Recordset tiver sido aberto como somente leitura.
Nenhum campo no registro for atualizável.
O Database ou o Recordset tiver sido aberto para ser utilizado exclusivamente por outro usuário (espaço de trabalho do Microsoft Access).
Outro usuário bloqueou a página contendo seu registro (espaço de trabalho do Microsoft Access).
Em um espaço de trabalho do Microsoft Access, quando a configuração da propriedade LockEdits do objeto Recordset é True (bloqueado de forma pessimista) em um ambiente de vários usuários, o registro permanece bloqueado desde o momento em que Edit é usado até que a atualização seja concluída. Se a configuração da propriedade LockEdits for False (bloqueado de forma otimista), o registro será bloqueado e comparado ao registro pré-editado antes de ele ser atualizado no banco de dados. Se o registro foi alterado desde que você usou o método Edit, a operação Update falha com um erro de tempo de execução, se você usar OpenRecordset sem especificar dbSeeChanges. Por padrão, os bancos de dados ODBC e ISAM instalável conectados ao mecanismo de banco de dados do Microsoft Access sempre usam bloqueio otimista.
Observação
[!OBSERVAçãO] Para adicionar, editar ou excluir um registro, deve haver um índice exclusivo no registro, na fonte de dados de base. Se não houver, um erro "Permissão negada" ocorrerá na chamada do método AddNew, Delete ou Edit em um espaço de trabalho do Microsoft Access.
Exemplo
Este exemplo usa o método Edit para substituir os dados atuais pelo nome especificado. O procedimento EditName é exigido para que este procedimento seja executado.
Sub EditX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset2
Dim strOldFirst As String
Dim strOldLast As String
Dim strFirstName As String
Dim strLastName As String
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
' Store original data.
strOldFirst = rstEmployees!FirstName
strOldLast = rstEmployees!LastName
' Get new data for record.
strFirstName = Trim(InputBox( _
"Enter first name:"))
strLastName = Trim(InputBox( _
"Enter last name:"))
' Proceed if the user entered something for both fields.
If strFirstName <> "" and strLastName <> "" Then
' Update record with new data.
EditName rstEmployees, strFirstName, strLastName
With rstEmployees
' Show old and new data.
Debug.Print "Old data: " & strOldFirst & _
" " & strOldLast
Debug.Print "New data: " & !FirstName & _
" " & !LastName
' Restore original data because this is a
' demonstration.
.Edit
!FirstName = strOldFirst
!LastName = strOldLast
.Update
End With
Else
Debug.Print _
"You must input a string for first and last name!"
End If
rstEmployees.Close
dbsNorthwind.Close
End Sub
Sub EditName(rstTemp As Recordset2, _
strFirst As String, strLast As String)
' Make changes to record and set the bookmark to keep
' the same record current.
With rstTemp
.Edit
!FirstName = strFirst
!LastName = strLast
.Update
.Bookmark = .LastModified
End With
End Sub