Excluir um registro de um Conjunto de Registros de DAO
Você pode excluir um registro existente em um objeto Recordset do tipo dynaset ou tabela usando o método Delete. Você não pode excluir registros de um objeto Recordset do tipo instantâneo. O exemplo de código a seguir exclui todos os registros duplicados na tabela Shippers.
Sub DeleteDuplicateShippers()
Dim dbsNorthwind As DAO.Database
Dim rstShippers As DAO.Recordset
Dim strSQL As String
Dim strName As String
On Error GoTo ErrorHandler
Set dbsNorthwind = CurrentDb
strSQL = "SELECT * FROM Shippers ORDER BY CompanyName, ShipperID"
Set rstShippers = dbsNorthwind.OpenRecordset(strSQL, dbOpenDynaset)
' If no records in Shippers table, exit.
If rstShippers.EOF Then Exit Sub
strName = rstShippers![CompanyName]
rstShippers.MoveNext
Do Until rstShippers.EOF
If rstShippers![CompanyName] = strName Then
rstShippers.Delete
Else
strName = rstShippers![CompanyName]
End If
rstShippers.MoveNext
Loop
Exit Sub
ErrorHandler:
MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function
Quando você usa o método Delete, o mecanismo de banco de dados do Access imediatamente exclui o registro atual sem qualquer aviso ou solicitar. Exclusão de um registro não provoca automaticamente o próximo registro para se tornar o registro atual; Para mover para o próximo registro, você deve usar o método MoveNext. Lembre-se de que depois que tiver movido desativa o registro excluído, você não pode mover de volta para ele.
Se você tentar acessar um registro depois de excluí-lo em um Recordset do tipo tabela, verá o erro 3167, "Registro é excluído". Em um dynaset, você verá o erro 3021, "Nenhum registro atual".
Se você tiver um clone do Recordset posicionado no registro excluído e tentar ler seu valor, verá o erro 3167, independentemente do tipo de objeto Recordset . Tentar usar um marcador para ir para um registro excluído também resultará em um erro 3167.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários