O modo como muitos de nós programamos no MS Access, utilizando o DAO, finda por nos expor a alguns erros peculiares com o quais precisamos aprender a lidar.
Um destes é o erro 3021 - Run-time error 3021: O BOF ou EOF for VERDADEIRO, ou o registro atual foi eliminado. A operação solicitada requer um registro atual.
Seguindo o padrão "Microsoftniano" poderíamos analisar o erro sobre os seguintes aspectos: Sintomas, Ponto da situação, Como contornar.
SINTOMAS
Este erro ocorre quando o recordset está vazio.
SITUAÇÃO
Este é um problema conhecido (SMR 21204) e será resolvido num FRx Service Pack futuro. Atribuições de Service Pack não são uma garantia e podem ser alteradas a qualquer momento.
CONTORNAR
Uma solução simples é a de checar se está no final da tabela antes de executar o processo:
if rsBaseDados.EOF=false then
rotina
end if
Normalmente adiciono um tratamento do erro para enganar o processo e dar continuidade ao processamento:
Public Function QueryRecord()On Error GoTo ErrorHandler' Seu código fica aqui' ...........................ErrorHandlerExit:Exit SubErrorHandler:If Err = 3021 Then ' Sem registro corrente Resume NextElseMsgBox "Erro Nº: " & Err.Number & "; Descrição: " & Err.DescriptionResume ErrorHandlerExitEnd IfEnd Function
Veja outros códigos:
Série de Livros nut Project
Série DONUT PROJECT 2021
Série DONUT PROJECT 2018
Série DONUT PROJECT 2015
Série DONUT PROJECT 2014
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
Nenhum comentário:
Postar um comentário