VBA Access - Run Time Error 3021 - O BOF ou EOF for VERDADEIRO

VBA Access - Run Time Error 3021 - O BOF ou EOF for VERDADEIRO

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 Sub

ErrorHandler:
    If Err = 3021 Then    ' Sem registro corrente        Resume Next
    Else
        MsgBox "Erro Nº: " & Err.Number & "; Descrição: " & Err.Description

        Resume ErrorHandlerExit
    End If
End Function

 

Veja outros códigos:

VBA Excel | Extraindo a Data de uma Célula com Data e Horário - Remove Date from Date and Time VBA Excel | Converta Tudo para Maiúscula - Convert to Upper CaseVBA Excel | Contando Palavras na Planilha - Word Count from Entire Worksheet VBA Excel | Removendo Decimais dos Números - Remove Decimals from Numbers

VBA Excel |  Multiplique todos os Valores por um Número - Multiply all the Values by a Number VBA Excel | Calculando a Raiz Cúbica - Calculate the Cube Root

VBA Excel | Adicionando Letras de A até Z - Add A-Z Alphabets in a Range VBA Excel | Convertendo Numerais Romanos em Arábicos - Convert Roman Numbers into Arabic Numbers

VBA Excel | Converta todos os Números Negativos em Positivos - Remove Negative Signs VBA Excel | Preencha com zeros as Células em Branco - Replace Blank Cells with Zeros

Leia também:

eBook: Série DONUT PROJECT 2015: Projetos e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes  eBook: Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel - Autor: André Luiz Bernardes

eBook: Série Funções Poderosas: 13 Funções Poderosas no MS Excel - Autor: André Luiz Bernardes  eBook: Série Visual Basic For Application: Criando Logs de acesso: Dicas e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes

eBook: Série VBA Tips: Rastrei seus Dashboards, Scorecards, Reports, Relatórios, Planilhas e Aplicações - Dicas e Códigos - Autor: André Luiz Bernardes  eBook: Série Data Science: Big Data, Como? - Autor: André Luiz Bernardes

eBook: Série Smarter Analytic: 5 Previsões de Big Data - Autor: André Luiz Bernardes


Conheça também:

DONUT PROJECT 2021 - VBA Function:  Como Rastrear o Google Maps (Coordenadas Geográficas) no VBA Excel?

DONUT PROJECT 2021 - VBA Function:  Crie Acrônimos a partir de Strings de Texto

DONUT PROJECT 2021 - VBA Function:  Convertendo uma Matrix num Vetor - Convert Matrix to a Vector

DONUT PROJECT 2021 - VBA Function:  Como tornar o Formulário Transparente no MS Excel?

DONUT PROJECT 2021 - VBA Function:  Faça Buscas no Google a Partir da Célula do MS Excel - Search Google From a Cell

DONUT PROJECT 2021 - VBA Function:  Decompondo um Nome nas Dimensões de uma Matriz

DONUT PROJECT 2021 - VBA Function: Extraindo o Último Sobrenome de um Nome Completo ou a Última Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function:  Extraindo o Segundo Nome de um Nome Completo ou a Segunda Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function: Extraindo o Primeiro Nome ou  a Primeira Palavra de uma Frase

Série Piece of Cake

Séries Donut


Comente e compartilhe este artigo!


brazilsalesforceeffectiveness@gmail.com


Nenhum comentário:

Postar um comentário

diHITT - Notícias