Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BelSelf (Silvano Soares)

[Resolvido] Run time error 3021

Recommended Posts

Olá pessoal,

 

To com um problema ja fazem 4 dias, tentei sair de todas as formas e nada. O que ocorre é o seguinte, enquanto estou desenvolvendo o sistema dentro do VB 6.0 (O sistema precisa rodar em win98 com maquinas estilo Pentium 100), eu aperto o F5 pra testar o q fiz e o sistema roda na boa sem erros nem nada. Acontece q quando eu compilo ele pra criar o executável, ele executa tudo bonitinho, mas quando vou entrar numa tela nova q estava trabalhando quando dou um duplo clique num Grid ele me retorna o erro "Run time Error 3021", e eu não consigo achar o erro dentro do VB pq lá ele executa tudo normalmente, sem erros, só depois de compilado que ele da o erro http://forum.imasters.com.br/public/style_emoticons/default/upset.gif , não sei o q fazer !!

 

Alguém ja passou por isso ??? tem alguma maneira de eu descobrir depois de compilado em qual linha ele ta dando erro ?? Isso pode ser algum pau do próprio VB ???

 

Obrigado aguardo ancioso a ajuda de vcs !!

abrax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando acontece isso é complicado mesmo ....Faz o seguinte ... no evento que da o erro, coloque a cada linha um MsgBox com um numero ... dai voce ve em que numero deu o erro e ve a linha depois

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este erro ocorre quando um record set não retorna nenhum registro. Provavelmente uma de suas funções está tentando fazer alguma atividade com operadores com um registro, campo ou com o conteúdo inteiro do recordset.

Sugiro que você tente identificar qual função é esta, e colocá-la dentro de uma cláusula de tratamento de erro.

 

Exemplo.

No meu caso, tenho uma tela de fazer recebimento onde marco quais duplicatas quero baixar. Depois abro um recordset, filtrando apenas as duplicatas marcadas. Veja que, quando o usuário não marcava nenhuma duplicata, este recordset ficava vazio.

Bem, então quando eu chamava uma funcao (CalJuros), para calcular os juros referente a duplicata selecionada (uma de cada vez), ocorria este erro

 

veja a descrição do erro

 

Run-Time error '3021'

Bof ou Eof são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

 

ou seja, a função CalJuros tentava ler o valor da duplicata, mas como o recordset estava vazio, nao encontrava este valor.

 

Para prevenir o problema

Coloque uma cláusula ON ERROR antes das chamadas que usam o recordset, da seguinte forma

 

on error goto DeuErro

'funcoes que usam o recordset

'podem ser quantas funcoes você quiser

'após colocar as funções declare o seguinte rotulo

DEUERRO:

'aqui voce pode colocar uma mensagem se quiser, mostrando o erro de maneira customizada

MsgBox "Erro reportado: " & Err.Number & ", " & Err.Description & ", " & Err.Source, vbExclamation, "ATENÇÃO"

'ou simplesmente gravar o erro num arquivo de log

Compartilhar este post


Link para o post
Compartilhar em outros sites

RicardoSistemais a intenção foi boa em responder mas este topico ja tem mais de 2 anos poderia dar preverencia em responder topicos mais recentes

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.